java泛型转map
时间: 2024-09-05 20:01:54 浏览: 43
Java泛型的简单实例
在Java中,泛型可以用于创建模板化的集合,如Map。当你需要将泛型类型的Map转换成非泛型形式的Map时,通常会在运行时通过强制类型转换来实现。以下是一个简单的示例:
```java
import java.util.HashMap;
import java.util.Map;
public class Main {
public static void main(String[] args) {
// 创建一个泛型Map<String, Integer>
Map<String, Integer> genericMap = new HashMap<>();
genericMap.put("One", 1);
genericMap.put("Two", 2);
// 使用Class对象获取Map的具体类型
Class<?> keyClass = String.class; // 键的类型
Class<?> valueClass = Integer.class; // 值的类型
// 将泛型Map转换为Object类型的Map
Map<Object, Object> nonGenericMap = (Map<Object, Object>) genericMap.clone(); // 注意这里是浅复制,只复制引用不复制内容
// 现在你可以像操作普通Map一样操作nonGenericMap
nonGenericMap.put(keyClass.cast("Three"), valueClass.cast(3));
System.out.println(nonGenericMap); // 输出: {One=1, Two=2, Three=3}
}
}
```
在这个例子中,我们首先创建了一个`Map<String, Integer>`,然后使用`Class`对象获取键和值的实际类型,接着通过类型转换将泛型Map转换成了非泛型的Map。注意,这个过程并不是安全的,因为如果尝试插入的数据类型与原始类型不符,可能会抛出`ClassCastException`。
阅读全文