Java传递变量 - 向下转换

时间:2014-11-18 16:44:53

标签: java object casting downcast upcasting

我有一个功能,例如

helloworld(list<object> names)

我有以下代码:

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

现在,如果我想将newMe传递给helloworld(newMe);。这是不可能的,因为我下来铸造。我怎样才能克服这个问题?我是否将我的列表向下转换为(对象),然后尝试向上播放它?有另一种方式吗?我会很感激一个例子。

感谢

2 个答案:

答案 0 :(得分:2)

helloworld的定义更改为

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

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

答案 1 :(得分:0)

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

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

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

        helloworld(newMe);
    }
}