gpt4 book ai didi

java - 检查并获取对象的值

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

我想获取每个对象的每个实例,我必须检查一项是否是该对象的实例,然后获取值,我有:

@Override
public void onSelection(SelectionEvent<TreeItem> event) {
TreeItem item=event.getSelectedItem();

if(firstGroup instanceOf TreeItem ) {
Sun first=(Sun) item.getUserObject();
....;
}
else if(secondGroup instanceOf TreeItem) {
Wall second=(Wall) item.getUserObject();
...;
}
else if(thirdGroup instanceOf TreeItem) {
Sky third=(Sky) item.getUserObject();
...;
}

但这里只适用于第一个 if,而其他则不适用。我需要获取所有值,您能建议我做错了什么吗?

最佳答案

如果您希望评估所有条件,请勿使用 else if

if(firstGroup instanceOf TreeItem ) {
Sun first=(Sun) item.getUserObject();
....;
}
if(secondGroup instanceOf TreeItem) {
Wall second=(Wall) item.getUserObject();
...;
}
if(thirdGroup instanceOf TreeItem) {
Sky third=(Sky) item.getUserObject();
...;
}
如果所有条件都检查 firstGroup 的类型,则

else if 才有意义,因为如果是这种情况,则只有其中一个条件为 true firstGroup 的给定值。

再看一遍之后,检查您实际转换的对象的实例更有意义,在这种情况下,else if 有意义:

if (item.getUserObject() instanceOf Sun) {
Sun first=(Sun) item.getUserObject();
....;
} else if (item.getUserObject() instanceOf Wall) {
Wall second=(Wall) item.getUserObject();
...;
} else if (item.getUserObject() instanceOf Sky) {
Sky third=(Sky) item.getUserObject();
...;
}

关于java - 检查并获取对象的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25488896/

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