我有一个函数,例如
helloworld(list<object> names)
我有以下代码:
List<CustomClass> newMe = new ArrayList<CustomClass>();
现在,如果我想newMe
传递到helloworld(newMe);
.这是不可能的,因为 im 向下铸造。如何克服此问题?我是否将我的列表向下投射到(对象),然后尝试向上投射它?还有别的办法吗?将不胜感激。
谢谢
将helloworld
的定义更改为
public void helloworld(List<?> names) {
//method implementation...
}
请注意,您的方法将无法在列表参数中添加或删除元素。
只需在参数列表中使用 ? 作为泛型类型。例:
public class Foobar {
public static void helloworld(List<?> names) {
}
public static void main(String[] args) {
List<CustomClass> newMe = new ArrayList<>();
helloworld(newMe);
}
}