如何将对象转换为另一个对象?

时间:2015-03-21 21:45:19

标签: java api events plugins reflection

首先,如果问题措辞错误。让我知道,我不确定如何说出这个问题。 ^^'

好了,现在,我正在开发一个插件API,这样人们可以更改程序行为而无需修改源代码,无法编程但仍想修改它的用户可以下载人们制作的其他插件已经。 现在,我正在研究事件系统,如果事件被触发,插件可以检测到对它的反应。我希望用户能够输入以下代码:

handleEvent(Event e) {}

然后使用:

if(e instanceof <EVENTTYPE>) {
    <EVENTTYPE> e2 = (<EVENTTYPE>) e;
    // Do code here that could not be normally accessible without casting
}

但我不知道怎么做,所以我没有代码可以显示。但是,如果你想要的代码我做得很好(除了这个,我说我不知道​​怎么做)我可以给你。

1 个答案:

答案 0 :(得分:1)

任何类的子类都可以向原始类添加额外的方法。如果类型为该子类的对象是由类型为超类的变量引用的,那么这些额外的方法将不可见,因为变量的类型不知道它们。要使额外的方法可用,需要将对象分配给正确类型的变量,并且需要向下转换。这就是你的例子中发生的事情。

相关问题