Java FindBugs未经检查的铸造投诉
考虑以下代码:Java FindBugs未经检查的铸造投诉,java,findbugs,Java,Findbugs,考虑以下代码: public void broadcast(FacesEvent event) throws AbortProcessingException { if(!(event instanceof WrapperEvent)) { super.broadcast(event); return; } // Sets up the correct context and fire our wrapped event. G
public void broadcast(FacesEvent event)
throws AbortProcessingException {
if(!(event instanceof WrapperEvent)) {
super.broadcast(event);
return;
}
// Sets up the correct context and fire our wrapped event.
GridWrapperEvent revent = (GridWrapperEvent)event; // FindBugs is complaining here
int oldRowIndex = getRowIndex();
int oldColumnIndex = getColumnIndex();
boolean oldClientIdRewritting = clientIdRewritting;
setClientIdRewritting(revent.isClientIdRewritting());
setActiveCell(revent.getRowIndex(), revent.getColumnIndex());
FacesEvent rowEvent = revent.getFacesEvent();
rowEvent.getComponent().broadcast(rowEvent);
setActiveCell(oldRowIndex, oldColumnIndex);
setClientIdRewritting(oldClientIdRewritting);
}
正在抱怨评论的行。有什么我能做的吗?FindBugs是这么说的:
未经检查/未经确认的演员阵容
此强制转换未选中,并且不是全部
从中强制转换的类型的实例可以强制转换为当前的类型
投给。确保您的程序逻辑确保此强制转换将
没有失败
如果您知道事件
将始终是GridWrapperEvent
,则可以忽略该警告。否则,您可以将强制转换(以及取决于它的逻辑)封装在一个类似
if (event instanceof GridWrapperEvent) {
// ...
}
事实上,您已经在这样做了,但是对于(我假设)更通用的WrapperEvent
类。也许你可以修改这个检查,而不是添加一个新的检查