为什么这是错的:
Class<? extends Number> type = Integer.class; ArrayList<type> = new ArrayList<>();
?
有没有办法实例化一个给定类对象的特定类型的类?
显然,我永远不会直接做到这一点,只是一个例子,显示需要什么.在实际的代码中,我需要我不知道类型的名称.例如
public void createAList(Class<? extends Number> type) { ArrayList<type> toReturn = new ArrayList<>(); return toReturn; }
解决方法
<T extends Number> ArrayList<T> createAList(Class<T> type) { ArrayList<T> toReturn = new ArrayList<>(); return toReturn; } ArrayList<Integer> intList = createAList(Integer.class);