我有一堂课:
public class MultipleSorting<T extends Enum<?>> {
private T criteriaType;
public Class<T> getCriteriaClass() {
Field field = ReflectionUtils.getField(getClass(),"criteriaType");
ReflectionUtils.makeAccessible(field);
return (Class<T>)field.getType();
}
}
这个类被实例化为:
public abstract class MultiSortPageableController<T extends MultiSortPageableController<?,?>, U extends Enum<?>> {
private MultipleSorting<U> multipleSorting;
public MultiSortPageableController() {
super();
multipleSorting = new MultipleSorting<U>();
}
}
的实际值U
是从其子类传递的MultiSortPageableController
:
public abstract class AbstractArticleSearchController<T extends AbstractArticleSearchController<T>> extends MultiSortPageableController<T,ArticleSortField> {
}
是ArticleSortField
一个Enum
.
我期待的方法getCriteriaClass
会从. 但它正在回归。MultipleSorting
ArticleSortField
MultiSortPageableController
java.lang.Enum
我无法弄清楚为什么它没有返回实际的枚举以及我该如何做到这一点。任何指针都会对我很有帮助。我需要得到ArticleSortField
.
目的:
我有两个要求:
- 获取枚举类型的实际类(例如
ArticleSortField.class
) - 列出枚举值。如果我有枚举类,那么我可以调用
class..getEnumConstants()
.