0

我试图在 Eclipse 上进行一些调试,但调试器似乎在骗我。我有一个Map<String, NormalizedFunction>被调用的函数。当我到达断点时,变量函数是可见的。当我从变量视图中选择它时,它显示“ {getX()=[]int getX()}”,这是正确的。显然,这张地图有一个键和一个值。但是,当我打开函数变量并选择keysetvaluesEclipse 时说它为空。如果它清楚地表明有一个键和一个值,并且代码运行正确,这怎么可能呢?

4

1 回答 1

1

调试器没有说谎。您假设映射的所有键都应存储在keySetHashMap 的私有字段中。但这种情况并非如此。keySet()调用该方法时会延迟填充此变量。只看方法实现。

如果您想了解有关您的地图的一些信息,请使用其记录在案的指定 API:使用显示视图,键入functions.keySet(),右键单击并选择“评估”,然后您将真正获得地图的关键集。

于 2013-06-27T22:23:39.220 回答