有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

继承类中的Java类泛型NullPointerException

请帮助我理解下一段代码中的错误,因为我对Java泛型的了解还不多。 无法找出为什么我在BPage类中获取的pageData为空,而在APage中则可以。提前谢谢。 我已将Example类简化为几行:

public abstract class PageData {
}

public abstract class Page<T extends PageData> {
    protected T pageData;
    public Page(T pageData) {
        this.pageData = pageData;
    }
}

public class APageData extends PageData {
    public final String locator = "//*[@id=\"id_1\"]";
}
public class APage<T extends APageData> extends Page<APageData> {
    public APage(T pageData) {
        super(pageData);
    }

    public void getLocator() {
        System.out.println(pageData.locator);
    }
}


public class BPageData extends APageData {
    public final String locator = "//*[@class=\"class_1\"]";
}
public class BPage extends APage<BPageData> {
    public BPage(BPageData pageData) {
        super(pageData);
    }
}


APage aPage = new APage(new APageData());
aPage.getLocator();  // locator found, OK

BPage bPage = new BPage(new BPageData());
bPage.getLocator();  //pageData  NullPointerException

共 (1) 个答案

  1. # 1 楼答案

    你需要告诉上级该怎么做

    public class BPage extends APage<BPageData> {
        public BPage(BPageData pageData) {
            super(pageData);
            //this.pageData = pageData;
        }
    }