小编Wil*_*ill的帖子

如果我有一个(Object ...)方法,为什么Java不会调用(List <Object>)方法呢?

我有以下类存储对象数组列表.

public class Test {
    private List<Object[]> list = new ArrayList<Object[]>();

    public void addList(Object... obj) {
        list.add(obj);
    }

    public void addList(List<Object> lst) {
        list.add(lst.toArray());
    }
}
Run Code Online (Sandbox Code Playgroud)

当我调用以下内容时,addList(Object... obj)会调用重载方法,但我希望addList(List<Object> lst)调用它.我怎样才能做到这一点?

public class Main {
    public static void main(String[] args) {
        Test testObj = new Test();
        List<String> myStrings = new ArrayList<String>();
        myStrings.add("string 1");
        myStrings.add("string 2");
        myStrings.add("string 3");

        // The variable argument method is called but this is a list!
        testObj.addList(myStrings);

    }    
}
Run Code Online (Sandbox Code Playgroud)

java overloading variadic-functions

11
推荐指数
4
解决办法
1937
查看次数

标签 统计

java ×1

overloading ×1

variadic-functions ×1