首页 > 解决方案 > HashMap.Node 无法识别

问题描述

我正在做一个大项目。所以,这里不可能复制整个代码。但我的问题是,通过评估表达式,我可以尝试以下代码并true返回:

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

但是,当我在我的代码中复制完全相同的代码时,Node它是红色的,当我编写时HashMap.,我没有得到Node该短语的可能扩展名。任何人都可以帮助我吗?

我正在使用Java8.

提前致谢,

标签: javajava-8hashmap

解决方案


它是包私有的(更正式地称为“默认访问”)。这意味着它是一个包实现细节,不适用于包外的类。请参阅源代码

如果您只是想获取第一个键(请记住HashMap 不是 ordered,因此“first”实际上是“一些随机键”),那么您可以使用keySet().iterator().next(). 如果您不确定至少有一个键,您可能应该将该迭代器存储为局部变量,然后在调用hasNext()之前调用next()

如果您想弄清楚密钥集是否包含FiFiObjectType.AAA,那么您应该调用... getFiFiObjects().containsKey(FiFiObjectType.AAA)( javadoc )。


推荐阅读