Forum: PC-Programmierung java: Warning: Redundant array creation for calling varargs method


von Uhu U. (uhu)


Lesenswert?

Die Parameterliste
1
newInstance(new Object[]{sp, val})

produziert folgende Java-Lint-Fehlermeldung:
1
Warning: Redundant array creation for calling varargs method

Die Signatur von newInstance lautet:
1
public T newInstance(Object... args)

Wie bekommt man die Warnung weg?

: Bearbeitet durch User
von Jack (Gast)


Lesenswert?

Uhu U. schrieb:
> Die Parameterliste
>
1
> newInstance(new Object[]{sp, val})
2
>
>
> produziert folgende Java-Lint-Fehlermeldung:
>
>
1
> Warning: Redundant array creation for calling varargs method
2
>
>
> Die Signatur von newInstance lautet:
>
1
> public T newInstance(Object... args)
2
>
>
> Wie bekommt man die Warnung weg?
1
newInstance(sp, val)

Varargs wurden ja eingeführt, damit man nicht selber ein Array anlegen 
muss.

von Heiko L. (zer0)


Lesenswert?

Jack schrieb:
> Varargs wurden ja eingeführt...

[i]ja[/i] - Partikel. ...
XI) "Es ist [i]ja[/i] so, dass ...", "Es ist [i]ja[/i] offensichtlich 
..."
Worteinschub, mit welchem der Redner zum Ausdruck bringt, dass er 
hiermit versucht, der folgenden Unterstellung [i]implizit[/i] Geltung zu 
verleihen. Somit stets lohnender Einstiegspunkt für eine Rückfrage bzw. 
Widerspruch.

Pointe dabei:
> Wie bekommt man die Warnung weg?
Kommt darauf an - man kann zB nicht ein Object[] als das erste dieser 
Objekte übergeben, ohne doppelt zu verschachteln.
f(new Object[]{ new Object[]{ someObject, anotherObject } });
Bei Übergabe von "null" ist das Paramter-Array null - es knallt also bei 
"args.length".
f(new Object[]{ null });

f(Object... args);
besagt in Java nicht, dass f eine Reihe von Objekten als Parameter 
übernimmt, sondern dass f ein Object[] übernimmt, für welches in diesem 
Kontext eine bestimmte Kurzschreibweise zulässig aber nicht zwingend 
ist.

: Bearbeitet durch User
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.