比如,Debug时如下图展示:
我想要获取的是:ansList.get(i).getComponent().getConnectorId()
debug时明明有这个元素,但是当我写出来的时候却发现:ansList.get(88)没有getComponent()这个函数。
这不是因为debug出错了,而是因为这里默认进行了类型转换,将ansList.get(88)转换成了WebButton类型。
所以应当按照如下写法:
ans.getComponent().addListener(event -> {
String btnId = ((ClickEvent) event).getButton().getConnectorId();
List<Component> ansList = (ArrayList<Component>)editGrid.getComponents();
for(int i=ansList.size()-1; i>=0; i--){
if(ansList.get(i)!=null && ansList.get(i) instanceof WebButton){
WebButton tmpBtn = (WebButton) ansList.get(i);
if(tmpBtn.getComponent().getConnectorId().equals(btnId)){
//....
}
}
}
});
注: 父类强转成子类的时候,一定要先判断类型