检查并获取对象的值

时间:2014-08-25 15:05:28

标签: java

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

@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,而其他人则没有。我需要得到所有价值,你能告诉我我做错了吗?

1 个答案:

答案 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