level 10
墨凡尘轩💯
楼主
下面代码无论是Javac还是ecj都不会出错
到AIDE会导致NullPointerException
public class Test {
public static void main(String[] args){
new Test();
}
public Test(){
new 子类();
}
public String getSimpleName(){
return this.getClass().getSimpleName();
}
public class 子类 extends 父类 {
public 子类(){
super();
}
@Override
public String getTestSimpleName(){
return Test.this.getSimpleName();
}
}
public abstract class 父类{
public 父类(){
System.out.println( getTestSimpleName() );
}
public abstract String getTestSimpleName();
}
}
java.lang.NullPointerException: Attempt to invoke virtual method 'java.lang.String Test.getSimpleName()' on a null object reference
at Test$子类.getTestSimpleName(Test.java:20)
at Test$父类.<init>(Test.java:25)
at Test$子类.<init>(Test.java:16)
at Test.<init>(Test.java:9)
at Test.main(Test.java:6)
at java.lang.reflect.Method.invoke(Native Method)
at java.lang.reflect.Method.invoke(Method.java:372)
at com.aide.ui.build.java.j.run(SourceFile:1)
at java.lang.Thread.run(Thread.java:818)
2019年12月31日 15点12分
1
到AIDE会导致NullPointerException
public class Test {
public static void main(String[] args){
new Test();
}
public Test(){
new 子类();
}
public String getSimpleName(){
return this.getClass().getSimpleName();
}
public class 子类 extends 父类 {
public 子类(){
super();
}
@Override
public String getTestSimpleName(){
return Test.this.getSimpleName();
}
}
public abstract class 父类{
public 父类(){
System.out.println( getTestSimpleName() );
}
public abstract String getTestSimpleName();
}
}
java.lang.NullPointerException: Attempt to invoke virtual method 'java.lang.String Test.getSimpleName()' on a null object reference
at Test$子类.getTestSimpleName(Test.java:20)
at Test$父类.<init>(Test.java:25)
at Test$子类.<init>(Test.java:16)
at Test.<init>(Test.java:9)
at Test.main(Test.java:6)
at java.lang.reflect.Method.invoke(Native Method)
at java.lang.reflect.Method.invoke(Method.java:372)
at com.aide.ui.build.java.j.run(SourceFile:1)
at java.lang.Thread.run(Thread.java:818)