gpt4 book ai didi

java - “instanceof”不一致

转载 作者:行者123 更新时间:2023-12-02 23:22:15 24 4
gpt4 key购买 nike

嘿,这里是编程学生。

我有一个 JavaFX 应用程序。我有一个 Pane ,我想从中删除所有矩形。这是代码:

public Pane yard = new Pane();
...
for(int i = 0; i < yard.getChildren().size(); i++)
{
if(yard.getChildren().get(i) instanceof Rectangle)
{
yard.getChildren().remove(i);
}
}

有时这很有效。其他时候它根本无法删除任何东西。感谢您的帮助。

最佳答案

您在继续索引时会删除项目,导致您不考虑删除某些项目。

您应该使用迭代器来解决这个问题:

Iterator<?> it = yard.getChildren().iterator();
while(it.hasNext()) {
if(it.next() instanceof Rectangle) {
it.remove();
}
}

如果您使用的是 Java 8,您可以这样做,这样更具可读性:

yard.getChildren().removeIf(Rectangle.class::isInstance);

关于java - “instanceof”不一致,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29958096/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com