我的界面看起来像这样。
public interface FieldEnum<T> {
static <E extends Enum<E> & FieldEnum<T>, T> E valueOfRaw(
final Class<E> type, final T raw) {
for (final E enumConstant : type.getEnumConstants()) {
if (Objects.equals(enumConstant.getRaw(), raw)) {
return enumConstant;
}
}
throw new IllegalArgumentException("unknown raw: " + raw);
}
T getRaw();
}
当我像这样扩展它时,
public interface StringFieldEnum extends FieldEnum<String> {
}
在其中定义以下方法是多余的吗?
static <E extends Enum<E> & StringFieldEnum> E valueOfRaw(
final Class<E> type, final String raw) {
return FieldEnum.valueOfRaw(type, raw);
}