为什么不打印以下代码 ???
?
public class TestInterface {
interface I {};
I tester = new I() {{System.out.println("???");}};
static public void main(String[]args){
System.out.println("OGOGO");
}
}
输出:
OGOGO
ide:智能
jave:jdk-14.0.2版本
为什么不打印以下代码 ???
?
public class TestInterface {
interface I {};
I tester = new I() {{System.out.println("???");}};
static public void main(String[]args){
System.out.println("OGOGO");
}
}
输出:
OGOGO
ide:智能
jave:jdk-14.0.2版本
2条答案
按热度按时间falq053o1#
阿库兹明尼赫是对的!
当我换到
它打印出来了。
jq6vz3qz2#
它不打印是因为
new I() {{System.out.println("???");}};
永远不会被执行。注意,您有一个成员变量,一个字段,没有static
,那里。字段与类的相应示例一起初始化,如下所示TestInterface
. 如果希望它打印某些内容,请创建TestInterface
它的字段将用您指定的内容初始化。或者简单地用static
因此它成为一个类变量,并在类本身初始化时初始化。