Tengo la siguiente clase que almacena una lista de matrices de objetos.¿Por qué Java no llama al método (List <Object>), si tengo un (objeto ...) uno?
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());
}
}
Cuando llamo a continuación, el método sobrecargado addList(Object... obj)
se llama pero quiero que el addList(List<Object> lst)
a ser llamados. ¿Cómo puedo hacer esto?
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);
}
}
Debería considerar alejarse de un sistema de almacenamiento 'List