java - instanceof Double/Object 不起作用 :(

标签 java instanceof

我遇到了 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 中的这些元素是 nullDouble 值。我试图拒绝 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/

相关文章:

java - 如何在 Java 15 文本 block 功能中添加变量?

java - 添加元素到列表 Java

javascript - 在 Javascript 中检查对象是否为数组的最佳方法是什么?

javascript - Node vs Chrome,instanceof 的实现,多个文件

java - 通过创建依赖于特定条件的对象来避免 If-else 代码异味

java - 是否可以使用 JDBC 在 postgresql 登录流程的启动消息中传递 application_name?

java - 将 Onclick() 添加到 ArrayList 中的项目

java - 如何让我的图像翻转?

java - 抛出并捕获异常,还是使用instanceof?

Java:使用instanceof暴露不同的对象方法