Java 如何在ArrayList<;中添加元素;?扩展SomeType>;通过一种方法
我想向ArrayList添加元素扩展类型Java 如何在ArrayList<;中添加元素;?扩展SomeType>;通过一种方法,java,generics,arraylist,Java,Generics,Arraylist,我想向ArrayList添加元素扩展类型 ArrayList<? extends Type> ArrayList考虑一下您的定义:ArrayList如果您为列表定义了所有对象,那么所有对象都必须具有相同的类型 如果要插入多个类定义的简单列表,可以插入扩展类型的对象 例如: List<Type> list = gellAllItems(class); list.add(T); List List=gellAllItems(类); 列表。添加(T); 我不确定您对get
ArrayList<? extends Type>
ArrayList考虑一下您的定义:ArrayList如果您为列表定义了所有对象,那么所有对象都必须具有相同的类型
如果要插入多个类定义的简单列表,可以插入扩展类型的对象
例如:
List<Type> list = gellAllItems(class);
list.add(T);
List List=gellAllItems(类);
列表。添加(T);
我不确定您对getAllItems
返回值的声明,但是您不能将项添加到类型t extensed type
到数组中,您的问题中既有某个类型
又有类型
,这是一个打字错误吗?不,我的代码中有正确的类型。所以无论我们提到t,它的意思是它返回一个?的列表。但是T
在整个过程中都是一样的。但是当我每次调用函数时,我也需要通过类来消除这个问题吗?就像调用method()?方法addItem
不需要它。对于getAllItems
您可能需要它,但由于您尚未共享此方法的代码,因此我无法确定是否可以删除此参数。试着问另一个问题并分享更多代码。
public <T extends Type> void addItem(T itemToAdd, Class<T> classType) {
List<T> allItems = getAllItems(classType);
allItems.add(itemToAdd);
}
public <T extends Type> List<T> getAllItems(Class<T> classType)
List<Type> list = gellAllItems(class);
list.add(T);
ArrayList<? super Type> allItems;
ArrayList<Type> allItems;