非泛型类

时间:2017-09-21 12:02:16

标签: java generics

我想在非泛型类中包含一个声明为Map<Class<T>, MyClass<T>>的字段。

当我这样做时,编译器会抛出错误。我愿意接受其他建议来实现我在这里尝试做的事情(即)我可以存储这样一个地图但没有编译错误的地方。

我试图跟踪所有相关的持久性对象,具体取决于对象的类。所以当我尝试这样做时

private <R> Map<Class<? extends R>, MyPersistenceClass<R>> classToPersistenceMap;

我得到以下内容:

  

无法将R解析为类型。

1 个答案:

答案 0 :(得分:1)

应该告诉编译器&#39; T&#39;是 - 因此,如果您定义该字段的类不是通用的(它没有用&#39; T&#39;参数化),它将不知道什么类型的通用类型&#39;类&#39;应该要求。 因此,如果您没有从客户端代码传输它的意思,那么指定泛型参数是没有意义的。 您可能希望将该字段声明为     Map<Class<?>, MyClass<?>>