我想在非泛型类中包含一个声明为Map<Class<T>, MyClass<T>>
的字段。
当我这样做时,编译器会抛出错误。我愿意接受其他建议来实现我在这里尝试做的事情(即)我可以存储这样一个地图但没有编译错误的地方。
我试图跟踪所有相关的持久性对象,具体取决于对象的类。所以当我尝试这样做时
private <R> Map<Class<? extends R>, MyPersistenceClass<R>> classToPersistenceMap;
我得到以下内容:
无法将R解析为类型。
答案 0 :(得分:1)
应该告诉编译器&#39; T&#39;是 - 因此,如果您定义该字段的类不是通用的(它没有用&#39; T&#39;参数化),它将不知道什么类型的通用类型&#39;类&#39;应该要求。
因此,如果您没有从客户端代码传输它的意思,那么指定泛型参数是没有意义的。
您可能希望将该字段声明为
Map<Class<?>, MyClass<?>>