当前位置: 首页 > 面试题库 >

在main方法内编写函数-Java

养俊驰
2023-03-14
问题内容

您可以在main方法内编写方法吗?例如,我找到了以下代码:

public class TestMax {
    public static void main(String[] args) {
    int i = 5;
    int j = 2;
    int k = max(i, j);
    System.out.println("The maximum between is " + k);
}

 public static int max(int num1, int num2) {
    int result;
    if (num1 > num2)
       result = num1;
    else
       result = num2;

    return result; 
  }
}

方法max可以在main方法内编码吗?


问题答案:

当Java 8发布时,Closure /
Lambda功能应该可以实现,以便您可以在main方法中定义max方法。在此之前,您只能在特殊情况下在main方法中定义一个方法。

碰巧的是,您的问题确实属于特殊情况。有一个接口(可比较),其中包含比较两个相同类型的事物的逻辑。结果,该代码可以如下重写:

public class TestMax {
  public static void main(String[] args) {
    int i = 5;
    int j = 2;
    Comparator<Integer> compare = new Comparator<Integer>() {
        @Override
        public int compare(Integer o1, Integer o2) {
            // Because Integer already implements the method Comparable,
            // This could be changed to "return o1.compareTo(o2);"
            return o1 - o2;
        }
    };
    // Note that this will autobox your ints to Integers.
    int k = compare.compare(i, j) > 0 ? i : j;
    System.out.println("The maximum between is " + k);
  }
}

这仅起作用,因为标准Java发行版中已经存在比较器接口。通过使用库可以使代码更好。如果要编写此代码,则将Google
Guava添加到我的类路径中。然后,我可以编写以下内容:

public class TestMax {
  public static void main(String[] args) {
    int i = 5;
    int j = 2;
    // The 'natural' ordering means use the compareTo method that is defined on Integer.
    int k = Ordering.<Integer>natural().max(i, j);
    System.out.println("The maximum between is " + k);
  }
}

我怀疑您的问题更多是关于Java语言的功能,而不是与订购数字(及其他事物)有关的标准实践。因此,这可能没有用,但我想以防万一。



 类似资料:
  • 你能在main方法中写一个方法吗?例如,我发现以下代码: max方法可以在main方法中编码吗?

  • 我们正在用蓝J学习爪哇,我发现蓝J非常不清楚和令人困惑。我们得到了一个赋值,第一步是“创建一个主方法来调用对象”。我敢肯定他的意思是“调用火车方法”。 无论如何,我正在尝试让main方法在下面的代码中调用Train方法,因此当您在BlueJ中传递字符串参数时,它会执行main中的代码。就是这样。Train方法传入一个String和两个int值: 我一直得到一个错误,当试图这样做,但不知道为什么。

  • 问题内容: 是否可以像用C ++一样用Java 编写 虚拟 方法? 或者,是否存在可以实现类似行为的适当Java方法?我可以举一些例子吗? 问题答案: 来自维基百科 在 Java中 ,默认情况下,所有非静态方法都是“ 虚拟函数”。 只有标记为 final的 方法(不能被覆盖)以及 私有方法 (未被继承)都是 非虚拟的 。

  • 本文向大家介绍编写strcpy 函数相关面试题,主要包含被问及编写strcpy 函数时的应答技巧和注意事项,需要的朋友参考一下 已知strcpy 函数的原型是 char *strcpy(char *strDest, const char *strSrc);其中strDest是目的字符串, strSrc 是源字符串。 (1)不调用C++/C 的字符串库函数,请编写函数 strcpy 。 (2)str

  • 我目前正试图用源SDK用C编写一个LookAt函数。我做了一些研究,发现了很多链接,但其中很多都是关于统一或Glm的,并且使用了四元数和旋转矩阵,但我不需要这些。 所以,我的问题是: 我在门户2。我有一个位置坐标为x,y,z的目标,我有我的球员的位置和他的旋转角度(偏航,俯仰,滚动)。当我使用目标坐标作为参数的函数时,我希望我的播放器看到目标<我发现:点看点,但效果不太好,最后的角度从来都不好。

  • 前面我们已经生成好了一份扩展框架,但它是没有什么实际作用的。一个扩展的作用可大了去了,既可以操作PHP中的变量、常量,还可以定义函数、类、方法、资源等。先让我们从函数说起吧! ZEND_FUNCTION()宏函数 ZEND_FUNCTION()宏函数也可以写成PHP_FUNCTION(),但ZEND_FUNCTION()更前卫、标准一些,但两者是完全相同的。 #define PHP_FUNCTIO