2

请认为这是一种理解 api 的尝试,而不是质疑架构师的判断。

JavaFX 事件

参考 的构造函数javafx.event.Event,我需要传递一个EventTypeofEvent来实例化一个Event. 我读对了吗?如果是这样,这不是循环引用吗?

4

3 回答 3

3

不,不是,因为泛型参数是在编译时解析的。在运行时,Event除了一个EventType.

于 2013-01-31T04:06:13.253 回答
2

不是你的意思。

EventType 实例可以引用其他 EventType 实例,但不能引用 Event 实例。看一下EventType的构造函数和方法,密切关注方法/构造函数参数和返回类型。

于 2013-01-31T04:09:00.830 回答
1

这不是周期性的,但确实需要大量思考才能理解。

从您提供的 javadoc 中:

Event(EventType<? extends Event> eventType) 
Construct a new Event with the specified event type.

应将其EventType<? extends Event>读作“适用于特定类型事件的 EventType”。

这是另一个 SO 答案,可以更好地解释<? extends Class>https ://stackoverflow.com/a/3009779/463196

例如,假设我们有一个FooEventthat extends Event。然后我们将有一个EventTypeFooEvent.

此外,如果您查看 JavaDoc for EventType,它会说:

This class represents a specific event type associated with an Event. 
于 2013-01-31T04:09:49.807 回答