我是使用Java Generics的新手,我想知道如何摆脱未经检查的方法警告。我知道像这样的代码指定了通用对象的类型,并没有给我警告:
DTRowData<String> someData = new DTRowData<String>("Some string");
但是我不知道我的通用对象的类型,所以我一直在编写这样的代码:
DTRowData moreData = new DTRowData(80100);
这段代码对我来说更有意义,因为看起来使用泛型的一个很好的理由是,如果你不知道你将要获得什么类型的数据。但它给了我警告:&#34;未选中调用DTRowData作为原始类型DTRowData的成员&#34;
当我不知道我会回来的数据类型时,停止收到此警告的正确方法是什么?有时它会是一个数字,有时是一个字符串。 我宁愿不使用
@SuppressWarnings("unchecked")
如果它有帮助,这是我的类代码:
public class DTRowData<E> {
public E someValue;
public DTRowDate(E someValue){
this.someValue = someValue;
}
}
答案 0 :(得分:3)
在语句DTRowData moreData = new DTRowData(80100);
中,您已经知道参数E
的类型:它是构造函数参数80100
的类型的整数。
所以你可以按如下方式使用泛型:
DTRowData<Integer> someData = new DTRowData<Integer>(80100);