1
public class Tester {
2
public static void main(String[] parms) {
3
int i = 10;
4
i == 10 ? equals10() : notEqual10();
5
} // main()
6
7
private static int equals10() {
8
System.out.println("result is 10");
9
return 10;
10
} // equals10()
11
12
private static int notEqual10() {
13
System.out.println("result is NOT 10");
14
return -1;
15
} // notEqual10()
16
} // Tester
A. result is 10.
B. result is NOT 10.
C. result is 10
result is NOT 10.
D. compile with an error.
这道题为什么选D?能帮着解释一下么?
1
class A {
2
static A createA() {
3
return new A();
4
} // createA()
5
String message() {
6
return “Message from A”;
7
}
8
} // A
9
10
11
public class Tester {
12
public static void main(String[] parms) {
13
A aVar = null;
14
System.out.println(aVar.createA().message());
15
} // main()
16
} // Tester
A. compile successfully, but run with a NullPointerException.
B. compile with error.
C. Compile successfully and the output is:
Message from A
D. compile successfully, but run with error at line 13.
为什么选C呢?aVar已经是null了为什么还能输出内容?