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
。このコードはどのように機能しますか?
Main main = null; main.getNull().value
。
new Thread[]{}[-1].sleep(10);
、sleep()が静的メソッドである場所を思い出させます。これは、以前の一部のJavaバージョンでは成功していました。