gpt4 book ai didi

java - 无法创建名称为 Entry 的类

转载 作者:行者123 更新时间:2023-11-29 04:28:43 26 4
gpt4 key购买 nike

以下代码编译失败,错误消息如下:

Type mismatch: cannot convert from element type Test1.Entry to Map.Entry

我的问题是我们不能在我们的项目中使用 hash map 时使用名称为 Entry 的类吗?尽管我没有在此处导入任何 Entry 类,但为什么会出现此错误。

import java.util.HashMap;
import java.util.HashSet;
import java.util.Set;
public class Test1 {

public static class Entry<T> {
public String m() {
return "A";
}
}

public static void main(String[] args) {
final Set<Entry> a = new HashSet<>();

new HashMap<String, Entry>() {
{
for (final Entry entry : a) {
put(entry.m(), entry);
}
}
};
}
}

有什么方法可以保留这个类名并且代码编译成功。

最佳答案

因为您正在使用 double brace initialization map 内部结构在该 block 中公开。

要么重命名 Entry 类,要么将初始化代码移出 HashMap 的 init block ,这样您的 Entry 就不会隐藏映射内部 Entry 实现。

final HashMap<String, Entry> map = new HashMap<>();
for (final Entry entry : a) {
map.put(entry.m(), entry);
}

关于java - 无法创建名称为 Entry 的类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44821044/

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