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