我有以下枚举:
public enum NotifierTypes {
EMAIL(EmailNotifier.class);
SMS(SmsNotifier.class)
private final Class internalValue;
NotifierTypes(Class internalValue) {
this.internalValue = internalValue;
}
public Class getNotifierClass() {
return internalValue;
}
}
public interface INotifier {...}
public class EmailNotifier implements INotifier {...}
我希望提供给构造函数的参数表示实现接口的类型,比如INotifier
。我怎么能这样做?
答案 0 :(得分:2)
使用通用绑定:
private final Class<? extends INotifier> internalName;
NotifierTypes(Class<? extends INotifier> internalName){ /* ... */ }
public Class<? extends INotifier> getIntName(){ /* ... */ }