我正在做一个大项目。因此,不可能在此处复制整个代码。但是我的问题是,通过对表达式求值,我可以尝试以下代码,并得到true
的回馈:
((HashMap.Node)((HashMap)((FiFiClass)objectTerm.getValue()).getFiFiObjects()).entrySet().toArray()[0]).getKey().equals(FiFiObjectType.AAA)
但是,当我在代码中复制完全相同的代码时,Node
为红色,而当我编写HashMap.
时,却没有得到Node
作为扩展名词组。有人可以帮我吗?
我正在使用Java8
。
预先感谢
答案 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)。