[英]Map.entry(...) is undefined for type Map
我在学校的电脑上玩弄 Java 和哈希图。
我能够即时实例化一个String, Integer
类型的Entry
。 然后将其添加到Entrie
的ArrayList
中。 我将此代码通过电子邮件发送给自己以备后用。
但是在我的家用电脑和笔记本电脑上,它不会让我。 相同的确切代码说
未定义
Map
类型的方法entry(string,int)
代码是:
Map.Entry<String, Integer> entry = Map.entry(largest, maxCount);
我认为这与Map.Entry
是一个接口有关?
正如谷歌结果似乎说你必须制作自己的Entry
课程才能做到这一点? 但是在较新版本的 Java 中,这种情况发生了变化吗? 为什么我之前可以很好地执行此代码?
查找此方法的Javadoc 。 它说:
自:9
这意味着这个方法是在 Java 9 中添加的。
所以你家里的机器可能没有 Java 9 或更新版本。
在 CMD 中运行java -version
和javac -version
以验证您的版本。 然后安装更新的 Java(例如来自AdoptOpenJDK )。
如果您正在寻找无需 Java 9 即可运行的解决方案,您可以使用以下方法:
Map.Entry<String, Integer> entry = new AbstractMap.SimpleEntry<String, Integer>(largest, maxCount);
如此处更详细的解释: Java - How to create new Entry (key, value)
你说:
正如谷歌结果似乎说你必须制作自己的 Entry 课程才能做到这一点?
Java 6 之前的版本也是如此。提到的类AbstractMap.SimpleEntry
是在 Java 6 中添加的,可以(ab)用于此目的。 在此之前,您必须创建自己的实现。
另一种可能更好的选择可能是创建您自己的小类来保存该数据,然后给它一个适当的名称。
例如,与其使用Map.Entry<String, Integer>
来存储一个人的String name
和int age
,不如直接创建一个Person
类:
public class Person {
private final String name;
private final int age;
// Constructor and getters, ...
}
更具可读性,更易于维护和扩展。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.