当我以这种方式编写方法时。我收到这个警告:
BaseEvent 是一个原始类型。对泛型 BaseEvent 的引用应该被参数化
@Override
public <T extends BaseEvent> void actionPerformed(T event) { ... }
尽管警告标志很烦人,但代码仍然运行良好。当我以这种方式编写代码时,警告就会消失。
@Override
public <T> void actionPerformed(BaseEvent<T> event) { ... }
对于上一条消息,它不能保证它是 BaseEvent 的子类。于是我又改了:
@Override
public <T extends EventObject> void actionPerformed(BaseEvent<T> event) { ... }
@Override
public <T extends BaseEvent<T>> void actionPerformed(BaseEvent<T> event) { ... }
BaseEvent 类是我创建的扩展 EventOBject 的类
public abstract class BaseEvent<T> extends EventObject
{
private String eventType;
// Constructor
public BaseEvent(Object source, String type)
{
super(source);
eventType = type;
}
public String getEventType() { return eventType; }
}
所有方法似乎都可以正常工作。但我想知道哪个是更好的解决方案。