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 按值传递,所以引用更新不受影响。
给我背后的正当理由。