java - 从 Class<T> 到 Thing<T> 的类型安全映射

标签 java generics mapping type-safety

我想制作一个具有以下界面的 map 类容器:

public <T> Thing<T> get(Class<T> clazz);
public <T> void put(Class<T> clazz, Thing<T> thing);

有趣的是 T每个 Class<T> 中的 s -> Thing<T>对是一样的T , 但容器应该能够容纳许多不同类型的对。最初我尝试了一个 (Hash) Map .但是,例如,

Map<Class<T>, Thing<T>>

不对,因为那时T会是一样的 T对于该 map 中的所有对。当然,

Map<Class<?>, Thing<?>>

可以,但是我没有类型安全保证所以当我 get(String.class) , 我不能确定我得到了 Thing<String>实例返回。

是否有明显的方法来实现我正在寻找的类型安全?

最佳答案

map 本身并不能保证这一点,但如果您仅通过上述方法访问它,您将获得所需的安全性。

关于java - 从 Class<T> 到 Thing<T> 的类型安全映射,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3003526/

相关文章:

c# - 我有一个排序的键/值对列表,想找到与新键相邻的值

javascript - 具有对象数组和对象到对象的通用映射函数

nhibernate - 是否可以使用 NHibernate 将多个表映射到单个域模型?

postgresql - GraphQL 到 PostgresQL 类型映射

java - 多项式表达式的正则表达式

Javapoet/JavaWriter 附加到现有类

c# - 我可以将此方法变成通用方法吗?

java - XBee 连接到 Android 手机

java - Eclipse 控制台不显示输出

c# - 对于 C# 无法使用类型约束推断泛型类型参数,是否有解决方法?