A
Armel HERVE
Hi everybody,
is there someone who can explain me why the following program crashes ?
exeption :
java.lang.NullPointerException
at com.test.TestNull$InnerClass.access$0(TestNull.java:11)
at com.test.TestNull$InnerClass$AbstractClassImpl.getLength
(TestNull.java:18)
at com.test.TestNull$AbstractClass.<init>(TestNull.java:25)
at com.test.TestNull$InnerClass$AbstractClassImpl.<init>
(TestNull.java:16)
at com.test.TestNull$InnerClass$AbstractClassImpl.<init>
(TestNull.java:16)
at com.test.TestNull$InnerClass.<init>(TestNull.java:13)
at com.test.TestNull.<init>(TestNull.java:8)
at com.test.TestNull.main(TestNull.java:32)
Exception in thread "main"
Thanks for your answers
Armel
<code>
package com.test;
class TestNull {
private String test = null;
public TestNull() {
test = "Hello";
InnerClass aa = new InnerClass();
}
private class InnerClass {
InnerClass() {
AbstractClassImpl zz = new AbstractClassImpl();
}
private class AbstractClassImpl extends AbstractClass {
int getLength() {
return TestNull.this.test.length();
}
}
}
private abstract class AbstractClass {
public AbstractClass() {
System.out.println("getLength()=" + getLength());
}
abstract int getLength();
}
public static void main(String[] args) {
TestNull testNull1 = new TestNull();
}
}
</code>
is there someone who can explain me why the following program crashes ?
exeption :
java.lang.NullPointerException
at com.test.TestNull$InnerClass.access$0(TestNull.java:11)
at com.test.TestNull$InnerClass$AbstractClassImpl.getLength
(TestNull.java:18)
at com.test.TestNull$AbstractClass.<init>(TestNull.java:25)
at com.test.TestNull$InnerClass$AbstractClassImpl.<init>
(TestNull.java:16)
at com.test.TestNull$InnerClass$AbstractClassImpl.<init>
(TestNull.java:16)
at com.test.TestNull$InnerClass.<init>(TestNull.java:13)
at com.test.TestNull.<init>(TestNull.java:8)
at com.test.TestNull.main(TestNull.java:32)
Exception in thread "main"
Thanks for your answers
Armel
<code>
package com.test;
class TestNull {
private String test = null;
public TestNull() {
test = "Hello";
InnerClass aa = new InnerClass();
}
private class InnerClass {
InnerClass() {
AbstractClassImpl zz = new AbstractClassImpl();
}
private class AbstractClassImpl extends AbstractClass {
int getLength() {
return TestNull.this.test.length();
}
}
}
private abstract class AbstractClass {
public AbstractClass() {
System.out.println("getLength()=" + getLength());
}
abstract int getLength();
}
public static void main(String[] args) {
TestNull testNull1 = new TestNull();
}
}
</code>