i 先询问一般情况。 我完全没有这样做。 编辑告诉我:<代码>参数E不属于其约束范围代码>。 我在理解汇编者错误方面通常没有问题,但这是一个很trick的问题。 也许我对一般知识的了解需要改进。 谁能告诉我什么错误?
public static <E extends Enum & StringConvertableEnum<E>> Map<String, E> map(Class<E> enumClass) {
Map<String, E> mapping = new HashMap<String, E>();
EnumSet<E> set = EnumSet.allOf(enumClass);
for(E enumConstant : set) {
mapping.put(enumConstant.getStringValue(), enumConstant);
}
return mapping;
}
这是<代码>的定义。 StringConvertableEnum:
public interface StringConvertableEnum<E extends Enum> {
public E getEnumFromStringValue(String string);
public String getStringValue();
}