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

How to cast a object into another?

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

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

handleEvent(Event e) {}

然后使用:

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

但是我不知道该怎么做,所以我没有代码可以展示。但是,如果你想要我拥有的代码,它可以正常工作(除了这个,我说我不知道​​该怎么做)我可以给你。

任何 class 的

Subclass 可以向原始 class 添加额外的方法。如果一个类型为 subclass 的对象被一个类型为 superclass 的变量引用,那些额外的方法将不可见,因为变量的类型不知道它们。为了使额外的方法可用,需要将对象分配给正确类型的变量,这需要向下转型。这就是您的示例中发生的情况。