因为我一直没有使用泛型,在这个例子中我很困惑。在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异常。
我想你可以得到我想要做的与上面的代码片段的想法,我已经看到使用属性字段来保存参数化类类型的例子。
但是我很困惑,为什么我在类型属性中得到空值,我怎么能避免它。 非常感谢。