如何在Java中定义这样的地图?
Map<Class<T extends myObject>, MyObjectConverter<T>>
问题是两个参数中的T
。每个地图条目的T
应该不同。但我希望地图仅限于“共享一个共同的T”的键值对
以下定义有效,但我认为必须有更好的方法 - 没有CompilerWarnings:
Map<Class<? extends myObject>, MyObjectConverter>
答案 0 :(得分:1)
假设你有一个实现Map的类。
public class Cache<T> implements Map<... something ...> {
}
主要问题是你需要在你的T类声明中澄清,而不是在Map接口的约束中。
public class Cache<T extends MyObject> implements Map<T, MyObjectConverter> {
...
}
同样(对于方法等),您需要澄清泛型&#34;类型&#34;在限制参数之前使用它。
public <T extends MyObject> Collection<T> doFunc(T input, MyObjectConverter converter) {
...
}