我遇到了 java 的 instanceof 问题。这是给我带来麻烦的代码间隙:
LinkedList<Double> currentSummary = summary.getFirst().getQuantiles();
...更多代码...
while (!currentSummary.isEmpty()){
if (currentSummary.getFirst() instanceof Double){
orderedSummary.add(new ComparableWrapper<Double, Float>(currentSummary.removeFirst(), currentEpsilon));
}
}
所以,我的问题是,if 条件不会成立。 currentSummary
中的这些元素是 null
或 Double
值。我试图拒绝 null
的元素。起初,我只是添加了它们,但后来遇到了 NullPointerException,因为一些(但不是全部!)元素为 null。
currentSummary 的一个示例元素是例如[空,0.09861866469135272、10.137051035535745、107.12083740100329、371.4371264801424、827.432799544501、1206.251577083686]。
有人知道为什么 instanceof
在这种情况下不起作用吗?我也用 currentSummary.getFirst() instanceof Object
尝试过......
提前致谢!
最佳答案
我假设您想在每次迭代时删除第一个条目,以便遍历完整的列表。但是,仅当 instanceof 条件为 true 时才删除该条目。因此,当遇到第一个空值时,循环似乎变得无限(除非您删除了部分代码,并且我们看不到完整的循环体)
关于java - instanceof Double/Object 不起作用 :(,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3170814/