static
Java中的成员(static
字段或static
方法)与各自的类关联,而不是与此类的对象关联。以下代码尝试访问null
引用上的静态字段。
public class Main
{
private static final int value = 10;
public Main getNull()
{
return null;
}
public static void main(String[] args)
{
Main main=new Main();
System.out.println("value = "+main.getNull().value);
}
}
虽然main.getNull()
返回了null
,但它可以工作并显示value = 10
。该代码如何工作?
16
也许这个问题可以帮助您理解:为什么在null引用上调用(静态)方法不会引发NullPointerException?
—
Jan Gerlinger
为了娱乐,请尝试
—
Marko Topolnik
Main main = null; main.getNull().value
。
这让我想起了
—
2012年
new Thread[]{}[-1].sleep(10);
sleep()是静态方法的地方。这曾经在某些较旧的Java版本上成功。