HashMap.Node无法识别

时间:2019-03-07 08:33:51

标签: java java-8 hashmap

我正在做一个大项目。因此,不可能在此处复制整个代码。但是我的问题是,通过对表达式求值,我可以尝试以下代码,并得到true的回馈:

((HashMap.Node)((HashMap)((FiFiClass)objectTerm.getValue()).getFiFiObjects()).entrySet().toArray()[0]).getKey().equals(FiFiObjectType.AAA)

但是,当我在代码中复制完全相同的代码时,Node为红色,而当我编写HashMap.时,却没有得到Node作为扩展名词组。有人可以帮我吗?

我正在使用Java8

预先感谢

1 个答案:

答案 0 :(得分:3)

它是程序包专用的(更正式地称为"default access")。这意味着它是程序包实现的详细信息,并且不适用于程序包外部的类。参见the source code

如果您只是想获取第一个密钥(请记住,HashMaps aren't ordered,那么“ first”实际上是“某个随机密钥”),那么您就可以使用keySet().iterator().next()。而且,如果您不确定至少有一个密钥,则可能应该将该Iterator存储为局部变量,然后在调用hasNext()之前先调用next()

如果您想弄清楚密钥集是否包含FiFiObjectType.AAA,则应该只致电... getFiFiObjects().containsKey(FiFiObjectType.AAA)javadoc)。