因爲我一直沒有使用泛型,在這個例子中我很困惑。在java中使用泛型時出現空指針異常
我有以下的抽象基類:
public abstract class ExcelReader<T>{
protected T type;
protected GenericResolver resolver;
public ExcelReader(){
super();
resolver=ResolverFactory.createResolver(type.getClass());
}
}
現在我的子類如下:
public class POIReader<T> extends ExcelReader<T>{
}
//...Implementation of methods ommited for brevity
現在在我的服務,我通過以下方式創建新的對象:
ExcelReader<MessageDTO> reader=new POIReader<MessageDTO>();
但是,當調用ExcelReader構造函數時,type屬性爲null,而在cons在創建解析器時會引發NullPointer異常。
我想你可以得到我想要做的與上面的代碼片段的想法,我已經看到使用屬性字段來保存參數化類類型的例子。
但是我很困惑,爲什麼我在類型屬性中得到空值,我怎麼能避免它。 非常感謝。