1

我有一个功能,例如

helloworld(list<object> names)

我有以下代码:

List<CustomClass> newMe = new ArrayList<CustomClass>();

现在,如果我想newMe传入helloworld(newMe);. 这是不可能的,因为我正在向下铸造。我该如何克服这个问题?我是否将我的列表向下转换为(对象)然后尝试向上转换它?还有其他方法吗?将不胜感激一个例子。

谢谢

4

2 回答 2

2

将定义更改helloworld

public void helloworld(List<?> names) {
    //method implementation...
}

考虑到您的方法将无法从 list 参数中添加或删除元素。

于 2014-11-18T16:46:53.987 回答
0

只需使用 ? 作为参数列表中的泛型类型。例子:

public class Foobar {
    public static void helloworld(List<?> names) {

    }
    public static void main(String[] args) {
        List<CustomClass> newMe = new ArrayList<>();

        helloworld(newMe);
    }
}
于 2014-11-18T17:06:55.057 回答