我试图执行以下代码:静动初始化
public class StaticTest {
private static List<String> dat1;
{
dat1 = new ArrayList<>();
}
private StaticTest(){
System.out.println(dat1.contains("a")); //Marked Line 2: this one is not throwing
}
public static void main(String[] args) {
System.out.println(dat1.contains("a")); //Marked Line 1: This line throws null pointer
new StaticTest();
}
}
我试图执行上面的代码,我在1标线得到Null pointer exception
但是当我评论标记为1号线我得到的输出。
为什么我在第一种情况下得到例外而不是在第二种情况下?
当我使用private static List<String> dat1= new ArrayList<>();
时,不会引发异常。
非常感谢。我在块之前错过了“静态”关键字。我测试过了,它按预期工作。 – Kajal
是的,我接受了一个给定的答案.. :) – Kajal