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?

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.

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.