日期:2014-05-20  浏览次数:20880 次

Help me!
ClassB中能那样定义一个ClassC的变量,然后仅仅用哪个变量就可以调用ClassC中的实例方法而非成员方法?!
NullPointerException是因为什么引起的呢?

Java code

class ClassA {
    public void methodA() {
        ClassB classB = new ClassB();
        classB.getValue();
    }
}

class ClassB {
    public ClassC classC;
    public String getValue() {
        return classC.getValue();
    }
}

class ClassC {
    public String value;
    public String getValue() {
        value = "ClassB";
        return value;
    }
}

public class Question {

    /**
     * @param args
     */
    public static void main(String[] args) {
        // TODO Auto-generated method stub
        ClassA a = new ClassA();
        a.methodA();
    }

}



//Exception in thread "main" java.lang.NullPointerException
//    at ClassB.getValue(Question.java:11)
//    at ClassA.methodA(Question.java:4)
//    at Question.main(Question.java:31)



------解决方案--------------------
探讨

我就是觉得ClassC没有实例化,所以连ClassC中的getValue()方法都不能调用啊...
我觉得在编译时就应该报错的!