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