Java 抽象泛型类的集合,原始类型警告

Java 抽象泛型类的集合,原始类型警告,java,generics,abstract,raw-types,Java,Generics,Abstract,Raw Types,我有以下类层次结构: public abstract class Property<T> { private long id; private String name; private T value; /*setters and getters*/ } public class NumberProperty extends Property<Integer> public class TextProperty extends Pro

我有以下类层次结构:

public abstract class Property<T>
{
    private long id;
    private String name;
    private T value;

    /*setters and getters*/
}

public class NumberProperty extends Property<Integer>

public class TextProperty extends Property<String>
公共抽象类属性
{
私人长id;
私有字符串名称;
私人T值;
/*二传手和接球手*/
}
公共类NumberProperty扩展属性
公共类TextProperty扩展了属性
…和一个包含
列表属性的类。我得到“
属性是原始类型。对泛型类型属性的引用应该参数化”
。我知道为什么,但我希望有一个少数已知类型的属性列表(属性不能固定,因为它是抽象类)

我的问题是:我可以忽略警告吗?还是应该更改代码(如何更改?)

使用
Property
如果您不关心它是哪种类型的对象,这将指示编译器您知道自己在做什么

List<Property<?>> list;

Java中的
List集合是同构的,因此将不同类型的值放入其中是错误的。请注意,
Property
Property
没有层次关系-这是两种不同的类型,Java类型系统将无法表示某些属性为字符串和整数的列表。您唯一的选择是丢失类型安全性。

因为这是一个警告,所以您可以选择忽略它;)


警告通知您,当您有一个
列表
时,您不知道
属性
类中的
会出现什么。如果您不确定,可以使用
列表抑制警告:
@SuppressWarnings(“rawtypes”)
表示未知但同质。根据,问号(
)称为通配符,表示未知类型。
将使警告消失,OP在从列表中获取元素时始终可以强制转换元素,因为该类型以某种方式“已知”。