调用父类方法时获取null值

时间:2015-04-20 07:08:17

标签: java

我有以下课程。

public class TestController {
    protected ElementManager mElementManager;   
    public ElementManager getElementManager() {
        return this.mElementManager;
    }
}

public class ElementManager {
public final void clearTextField(String description, By by) {
        System.out.println("clearTextField: " + description);
        getElement(by).clear();
    }
}

以下类扩展TestController并在clearTextField()

中调用ElementManager .方法

但我得到eManager获得的null值错误。

public class PTestController extends TestController {
ElementManager eManager = this.getElementManager();
 eManager.clearTextFieldById("Pa","kkkk");

}

我的代码出了什么问题

2 个答案:

答案 0 :(得分:0)

假设这是整个代码,您没有初始化mElementManager。因此,它将是null,任何使用它的尝试都会产生NullPointerException

要解决此问题,您只需在父类中初始化它:

public class TestController {
    protected ElementManager mElementManager = new ElementManager(); // Here!
    public ElementManager getElementManager() {
        return this.mElementManager;
    }
}

答案 1 :(得分:0)

您的代码存在一些问题。

  1. 您未在mElementManager中初始化TestController。你忘了在那里添加一个构造函数吗?
  2. public TestController() { mElementManager = new ElementManager(); }

    1. 你的班级PTestController似乎编写得很糟糕。尝试对如何用Java编写类有一些基本的了解。