Wpis z mikrobloga

#java

Da się przekazać elementy z listy do konstruktora bez podawania każdego osobno?
Tak że podaję listę i automatycznie kazdy element traktuje jak zmienną

ArrayList list = new ArrayList();
list.add("one");
list.add("two");
Class.forName(className).getConstructor().newInstance(list.get(0), list.get(1));
  • 13
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

@d1l4x: spoko, wiem o tym, tylko w przypadku innych konstruktorów przekazanie całej listy nie jest odpowiedzią, bo liste potraktuje jako pierwszy argument.
  • Odpowiedz
@d1l4x: ej chwila, bo jak ja rozumie @piterRRR nie chce nowej instancji listy. Ja rozumiem problem jako:
"mam klase X, wiem , że przyjmuje za parametry Int, String, Double i nie chce pisać .getConstructor(Int.class, String.class, Double.class).newInstance(list.get(0), list.get(1), list.get(2));" (chodzi o list.get(1) itd.)
W takim przypadku moja odpowiedz się sprawdzi. A jeżeli faktcznie chce... mieć nową instancję listy... to własnie wyciąga armatę.

Ale tu chyba @piterRRR musi doprecyzować
  • Odpowiedz
@mccloud: Dokładnie o to mi chodziło, dzięki ( ͡° ͜ʖ ͡°) działa elegancko

listFromFile.add((T) Class.forName(t.getClass().getName())
.getDeclaredConstructor(constructors[1].getParameterTypes())
.newInstance(list.toArray()));
  • Odpowiedz