我想获取每个对象的每个实例,我必须检查一个项是否是该对象的实例,然后获取值,我有:
@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,而其他人则没有。我需要得到所有价值,你能告诉我我做错了吗?
答案 0 :(得分:3)
如果您想要评估所有条件,请不要使用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();
...;
}
如果所有条件都检查else if
的类型,则 firstGroup
会有意义,因为如果是这种情况,对于给定的{{1}值,其中只有一个是真的}}
再看看之后,检查实际投射的对象的实例更有意义,在这种情况下,firstGroup
是有道理的:
else if