gpt4 book ai didi

java - 对于 Apache Collections4 Multikey,未经检查的调用意味着什么以及如何修复它?

转载 作者:行者123 更新时间:2023-12-02 02:27:45 26 4
gpt4 key购买 nike

我正在更改 HashMap 以在类内使用 MultiKey。

之前:

 HashMap<String, MyObject> map = new HashMap<>();

现在我的 key 依赖于 2 个字符串,所以我使用:

 HashMap<MultiKey, MyObject> map = new HashMap<>();
map.put(key(s1,s2),obj);

private static MultiKey key(String s1, String s2) {
return new MultiKey(s1,s2);
}

IntelliJ 突出显示对 MultiKey 的构造函数调用并告诉我以下内容:

Unchecked call to 'MultiKey(K,K)' as a member of raw type 'org.apache.commons.collections4.keyvalue.MultiKey
Signal places where an unchecked warning is issued by the compiler.

最佳答案

您使用的原始类型提供的类型安全性低于非原始类型。

private static MultiKey key(String s1, String s2) {
return new MultiKey(s1,s2);
}

这里的返回类型是原始类型MultiKey 。尝试将其更改为其参数化对应项 MultiKey<String> :

private static MultiKey<String> key(String s1, String s2) {
return new MultiKey<>(s1,s2);
}

此外,您的 map 定义也使用原始类型。将其更改为

Map<MultiKey<String>, Descriptor> map = new HashMap<>();

请注意,在这种情况下,声明映射变量时最好使用接口(interface) ( Map ),而不是具体类 ( HashMap )。

关于java - 对于 Apache Collections4 Multikey,未经检查的调用意味着什么以及如何修复它?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47559507/

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