Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

Re: Konstruktor mit ArrayList als Parameter (Anfaengerniveau!)

415 views
Skip to first unread message
Message has been deleted
Message has been deleted

Jochen Theodorou

unread,
Nov 27, 2010, 2:57:26 PM11/27/10
to
Jens Kleinschmidt wrote:
[...]
> public Person(String name, ArrayList<String> vornamen) throws
> ParseException
[...]
> (***) ArrayList<String> v = new ArrayList(Arrays.asList({"Hans",
> "Joachim", "Werner"}));
> person1 = new Person("Müller", v, "29.3.1965");

Ich glaube der ParseError könnte daraus resultieren, dass du versuchst
mit {"Hans", "Joachim", "Werner"} ein String[] zu bekommen... sofern das
nicht inzwischen anders ist müsste das

new String[]{"Hans", "Joachim", "Werner"}

sein statt dessen. Demnach wäre die Zeile:

ArrayList<String> v = new ArrayList(Arrays.asList(new String[]{"Hans",
"Joachim", "Werner"});

ich glaube da könnte der Compiler noch wegen generics meckern, aber das
zu bereinigen überlasse ich dann dir.

Allerdings möchte ich da noch zwei Dinge sagen:

1) Wenn der Ausdruck derart lang ist würde ich in aufsplitten:

String[] names = new String[]{"Hans", "Joachim", "Werner"}
ArrayList<String> v = new ArrayList(Arrays.asList(names);

2) person1 = new Person("Müller", v, "29.3.1965"); Dein Konstruktor
war: Person(String name, ArrayList<String> vornamen). Wenn du genau
hinschaust, dann sind da Name und die Vornamen, aber kein Geburtsdatum,
der Compiler wird sich da also wieder beschweren.

Gruss theo

--
Jochen "blackdrag" Theodorou
The Groovy Project Tech Lead
http://blackdragsview.blogspot.com/
For Groovy programming sources visit http://groovy.codehaus.org

Achim Peters

unread,
Nov 27, 2010, 4:39:14 PM11/27/10
to
Jens Kleinschmidt wrote:
> sagt mir doch bitte, wo der Fehler liegt!

> Arrays.asList({"Hans", "Joachim", "Werner"})

Warum glaubst Du, das so schreiben zu können?

Lass die geschweiften Klammern weg. Die brauchst Du nur, wenn Du ein
anonymes String-Array übergeben willst - dann musst Du allerdings noch
ein "new String[]" davorschreiben, wie Theo schon schrieb

Arrays.asList(new String[]{"Hans", "Joachim", "Werner"}));

AFAIK seit Java 1.5 hat Arrays#asList() die Signatur

public static <T> List<T> asList(T... a)

( vorher: public static List asList(Object[] a) )

D.h., ab 1.5 kannst Du einfach eine beliebige Anzahl an Strings übergeben:

Arrays.asList("Hans", "Joachim", "Werner")

HTH

Bye
Achim

Message has been deleted
Message has been deleted

Jan Conrads

unread,
Nov 28, 2010, 7:52:31 AM11/28/10
to
Hallo,
Am Sun, 28 Nov 2010 13:20:24 +0100
schrieb Jens Kleinschmidt <fox_z...@trashmail.net>:

> On Sat, 27 Nov 2010 22:39:14 +0100, Achim Peters <Achim...@gmx.de>
> wrote:
>
[snip]
>
> Hmm, das folgende wird nicht übersetzt
> Fehler: ')' expected
>
> person1 = new Person("Müller", new ArrayList(Arrays.asList("Hans",
> "Joachim", "Werner"), "29.3.1965");
(..(..(.-.)..)
>
> Mache ich etwas falsch?

Ja, Dir fehlt eine schließende Klammer.
person1 = new Person("Müller", new ArrayList(Arrays.asList("Hans",
"Joachim", "Werner")), "29.3.1965");
^^
Könnte evt passen.
>
> Gruß
> Jens

Gruß Jan

Message has been deleted
0 new messages