如果在类初始化期间调用重写的基方法,则java实例字段不会初始化
有一个基类ServerAdapter
:
public abstract class ServerAdapter {
public ServerAdapter() {
initGUI();
}
protected abstract void initGUI();
}
以及继承ServerAdapter
的子类:
public abstract class LinuxServerAdapter extends ServerAdapter {
protected CheckBox key = new CheckBox();
public LinuxServerAdapter() {
super();
}
@Override
public void initGUI() {
//NPE is thrown here, because key = null
key.addClickHandler(new ClickHandler() {
@Override
public void onClick(ClickEvent event) {
//Something happens here
}
});
}
}
继承LinuxServerAdapter的最终类:
public class MyLinuxServerAdapter extends LinuxServerAdapter {
public MyLinuxServerAdapter() {
super();
}
public static void main(String args[]) {
ServerAdapter server = new MyLinuxServerAdapter();
}
}
当我尝试在键上添加clickHandler时,会抛出NPE
为什么key
没有初始化?在这种情况下,初始化顺序是否以特定方式工作
共 (0) 个答案