gpt4 book ai didi

java - 为什么我的双层 map 不起作用?

转载 作者:行者123 更新时间:2023-12-02 06:14:35 24 4
gpt4 key购买 nike

我有这个代码:

import java.util.*;
public class StorageCenter {
protected HashMap<Class<?>,HashMap<String,?>> storage;
public <T> void put(Class<T> c,String key, T value){
if(!storage.containsKey(c)){
storage.put(c, new HashMap<String,T>());
}
storage.get(c).put(key, value);
}
@SuppressWarnings("unchecked")
public<T> T get(Class<T> c,String key){
return (T) storage.get(c).get(key);
}
}

我希望这些方法应该起作用,允许我拥有一个“双” HashMap ,其中第一层是 Class 对象,第二层是该类型对象的 HashMap。

但是此代码不起作用,当我尝试使用它时出现编译错误:

storage.get(c).put(key, value);

为什么这不是合法的代码?

最佳答案

? 并不表示“任何类型”,而是表示“未知类型”。因此,向该映射添加任何内容都是不合法的,因为您不知道添加哪些类型是合法的。如果您希望能够添加任何内容,则类型参数为 Object

关于java - 为什么我的双层 map 不起作用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21614919/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com