我有一个看起来(原则上)像这样的函数
public <T extends Listener> T createListener(Class<T> clazz) {
if (clazz == SpecificListener.class) {
return (T) new SpecificListener();
}
// more instantiations here
}
特定侦听器是接口侦听器的实现。此代码有效,但 return 语句会未经检查地转换为 T。
有没有更好的方法来编写这个而不进行未经检查的转换?