我有一个枚举,我可以从中获取String或Class
public enum EditorialPageDataType {
BASIC_MODEL_INFORMATION("basic", BasicModelInformation.class),
GRADES("grades", Grades.class),
EXTERIOR_COLOURS("extColours", ExteriorColours.class);
private final String label;
private final Class<?> typeClass;
EditorialPageDataType(String label, Class<?> typeClass) {
this.label = label;
this.typeClass = typeClass;
}
public Class<?> getTypeClass() {
return typeClass;
}
public String getLabel() {
return label;
}
}
我想创建如下内容:
public T extract(EditorialPageDataType editorialPageDataType) {
return anotherClass.get(editorialPageDataType.getTypeClass());
}
我知道我可以做以下事情
public <T> T extract(EditorialPageDataType editorialPageDataType, Class<T> classType) {
return anotherClass.get(classType);
}
whereClass是:
class anotherClass {
public <T> T get(Class<T> classToReturn) {
T objectOfTypeT = getObjectOfType(classToReturn);
return objectOfTypeT;
}
}
但我希望能够只传入一个参数,并且具有枚举指定的类型。
答案 0 :(得分:0)
通过调用传递通用参数:
public T extract(EditorialPageDataType editorialPageDataType) {
return anotherClass.<T>get(editorialPageDataType.getTypeClass());
}