日期:2014-05-20  浏览次数:20773 次

请问在同一个事件处理中,能把事件源强制转换为不同的事件源类型吗?
请问在同一个事件处理中,能把事件源强制转换为不同的事件源类型吗?
例如
public   void   actionPerformed(ActionEvent   e)
{
MenuItem   mi=(MenuItem)e.getSource();
Button   bt=(Button)e.getSource();
}
这样有错误吗

------解决方案--------------------
会有错,classcast错。在强制转型前要先进行类型判断。

public void actionPerformed(ActionEvent e)
{
if(e.getSource() instanceof MenuItem){
MenuItem mi=(MenuItem)e.getSource();
} else if(e.getSource() instanceof Button) {
Button bt=(Button)e.getSource();
}
}
改成这样就可以了