请帮助理解下一代码中的错误,因为我对Java泛型有相当的了解。 无法找出为什么我在类BPage中获取pageData为null,在APage中它没关系。提前致谢。 我已将excample类简化为多行:
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
答案 0 :(得分:0)
你需要告诉超级做什么
public class BPage extends APage<BPageData> {
public BPage(BPageData pageData) {
super(pageData);
//this.pageData = pageData;
}
}