请问在同一个事件处理中,能把事件源强制转换为不同的事件源类型吗?
请问在同一个事件处理中,能把事件源强制转换为不同的事件源类型吗?
例如
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();
}
}
改成这样就可以了