JList deklariert eine Methode: public void setSelectedIndices(int[] indices)
Warum verwendet JList int [], um Indizes auszuwählen, wenn ein Integer-Satz benötigt wird?
, die nach Änderungen an der Dokumentation von Oracle:
die Auswahl der Menge der Indizes durch die gegebene Array
ich, dass ein Set weiß angegeben sein Primitive Int kann nicht als generischer Typ genommen werden.
Wie die Indizes abgerufen werden, die ich auswählen möchte? Für jetzt verwende ich eine Set<Integer>
, Schleife durch die Zeilen und wenn eine Zeile ausgewählt ist, fügen Sie es zu Set<Integer>
.
Aber dann muss ich die Set<Integer>
in eine int[]
konvertieren und es gibt keine eingebaute Funktion, das zu tun. Ich weiß bereits, wie man die Übersetzung macht.
Muss jemand, der public void setSelectedIndices(int[] indices)
verwendet, seinen eigenen Konverter entwickeln oder einen von Guava oder Apache verwenden?
Dies scheint ein Fehler in Swing zu sein. Gibt es einen Grund, warum diese Methode keine Set
oder sogar eine List
annehmen kann?
Oder gibt es eine Möglichkeit, eine Reihe von Primitiven zu erstellen, die ich nicht kenne?
Wäre es nicht besser für jeden Entwickler, wenn die Methode ein Set<Integer>
als Argument nahm? Warum ist das nicht der Fall?
Mögliche Duplikat von [ Wie kann ich einen Java HashSet in ein primitives int Array konvertieren?] (Http://stackoverflow.com/questions/2451184/how-can-i-convert-a-java-hashsetinteger-to-a-primitive-int- Array) –
Tom
@Tom: Diese Frage fragt speziell, ob es einen Fehler in Swing gibt. Ich weiß bereits, wie man eine Sammlung in ein Array umwandelt. Was ich wissen möchte, ist, warum diese spezifische Methode ein Array von primitiven int verwendet, wenn sie nur ihre Benutzer dazu verpflichtet, eine Übersetzung zu machen, die NICHT im Java-Standard ist. – vdolez
Swing, seit 1.2, älter als Generika, seit 1.5. Warum nicht 'setSelectedIndices() 'überladen? – trashgod