public class MyClassTest {
private static MyClass m;
public static void main(String[] args) {
m.initMe(getint());
}
public static int getint() {
m = new MyClass();
return (int) Math.random()*100;
}
}
class MyClass{
int i;
void initMe(int i) {
this.i = i;
System.out.println(this.i);
}
}
このコード スニペットはNullPointerException
、initMe()
が呼び出される前にgetint
が呼び出されるようにします。この問題の根本原因は何でしょうか? JAVA は値渡しなので、参照の更新は影響を受けません。
その背後にある適切な理由を教えてください。