示例代码是:
public class OverloadingTest {
public static void test(Object obj){
System.out.println("Object called");
}
public static void test(String obj){
System.out.println("String called");
}
public static void main(String[] args){
test(null);
System.out.println("10%2==0 is "+(10%2==0));
test((10%2==0)?null:new Object());
test((10%2==0)?null:null);
}
Run Code Online (Sandbox Code Playgroud)
输出是:
名为
10%2 == 0的 字符串为true
称为
String的对象称为
第一次调用test(null)带String参数调用方法,这是可以理解的The Java Language Specification.
1)任何人都可以解释我test()在前面的电话中调用的基础吗?
2)当我们提出时,说一个if条件:
if(10%2==0){
test(null);
}
else
{
test(new Object());
}
Run Code Online (Sandbox Code Playgroud)
它总是使用String参数调用方法.
编译(10%2)时编译器会计算表达式吗?我想知道表达式是在编译时还是在运行时计算的.谢谢.