Cast schlägt fehl : Object[] zu Button[]

Status
Nicht offen für weitere Antworten.

DocSnyder

Mitglied
Hallo,

ich möchte in einer Group(SWT) alle Buttons ermitten, die Children dieser Group sind:

Code:
group = new Group(this, SWT.NONE);
group.setText("document organization");
group.setLayout(rowLayout);
rbFile = new Button(group, SWT.RADIO);
rbFile.setText("local or web file");
rbFile.setSelection(true);
rbSingle = new Button(group, SWT.RADIO);
rbSingle.setText("single");
rbChained = new Button(group, SWT.RADIO);
rbChained.setText("chained");
rbQuery = new Button(group, SWT.RADIO);
rbQuery.setText("query");
rbHierarchy = new Button(group, SWT.RADIO);
rbHierarchy.setText("hierarchy");

und das mit folgender Funktion:

Code:
public Button[] getRadioButtons()
{
Control[] controls = group.getChildren();
ArrayList<Button> buttonArray = new ArrayList<Button>();
for(Control control : controls)
{
if(control instanceof Button)
buttonArray.add((Button)control);
}
return (Button[]) buttonArray.toArray();
}

ich bekomme aber jedes mal eine ClassCastException. im buttonArray wurden jedoch nur Buttons hinzugefügt durch die if-Bedingung, und toArray() liefert mit nur ein Object[]-Array. Warum funktioniert dann der Cast zu einem Button[]-Array nicht?

Vorher hatte ich dies probiert:

Code:
public Button[] getRadioButtons()
{
Button[] rButtons = (Button[]) group.getChildren();
return rbuttons;
}

Müßte doch theoretisch auch funktionieren, da alle Children der Group ja Buttons sind!?

Danke, Micha
 
S

SlaterB

Gast
buttonArray.toArray();
liefert ein Object[], egal was da drin ist,

ein Object[] ist was anderes als ein Button[], das kann man nicht so einfach casten,


du kannst aber der Liste sagen, dass sie bitte gleich ein Button[] erstellt,
dann klappt der Cast, da ein Button[] zurückgegeben wird
(der Rückgabetyp ist trotzdem noch Object[], deshalb muss man trotzdem noch casten)

return (Button[]) buttonArray.toArray(new Button[0]);
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
Zeppi Cast Object in Generics Allgemeine Java-Themen 4
Tarrew RMI Java RMI - com.sun.proxy.$Proxy1 cannot be cast to Funktionen Allgemeine Java-Themen 0
G Klassen Cast auf Argumentenklasse via Reflection? Allgemeine Java-Themen 10
M Cast double[]-->Object[] oder Vector<double[]> Allgemeine Java-Themen 3
M Harten Cast vermeiden Allgemeine Java-Themen 7
S Unchecked cast from Component to JComboBox<String> Allgemeine Java-Themen 3
P Reflection "Cast" Allgemeine Java-Themen 5
M cannot be cast to java.lang.Comparable Allgemeine Java-Themen 5
V Gibt es einen Variablen Cast? Allgemeine Java-Themen 8
Z Cast von Long zu Integer funktionert nicht Allgemeine Java-Themen 3
N cast über string Allgemeine Java-Themen 24
C int zu byte cast - verständnis Allgemeine Java-Themen 3
E Heap und Comparable (warning: [unchecked] unchecked cast) Allgemeine Java-Themen 2
MQue cast DefaultMutableTreeNode Allgemeine Java-Themen 2
M Type-Cast Allgemeine Java-Themen 3
G Cast Allgemeine Java-Themen 4
O unchecked cast? Allgemeine Java-Themen 4
S instanceof liefert true, aber cast funktioniert nicht! Allgemeine Java-Themen 6
reibi Unchecked cast Allgemeine Java-Themen 1
T cast Object to Double[] Allgemeine Java-Themen 2
G Trotz Generics Cast-Fehler! Allgemeine Java-Themen 5
G Object cast via Reflection Allgemeine Java-Themen 8
R cast Integer[] zu int[] Allgemeine Java-Themen 2
G Cast von String zu Enumeration Allgemeine Java-Themen 2
N Warning "The Cast from Object to" Allgemeine Java-Themen 9
Y unnecessary cast & Performance Allgemeine Java-Themen 29
B unchecked cast Error Allgemeine Java-Themen 2
K Cast ohne neues Object zu erzeugen Allgemeine Java-Themen 12
D Cast Exeption Allgemeine Java-Themen 4
T JNI: jcharArray: warning: cast to pointer from integer of. Allgemeine Java-Themen 5
K Cast von Properties und Hashmap Allgemeine Java-Themen 9
E NumberFormatException bei cast auf double Allgemeine Java-Themen 5
H [unchecked] unchecked cast Problem Allgemeine Java-Themen 5
N Regex schlägt nicht an Allgemeine Java-Themen 10
mrbig2017 Kapselung Methodenaufruf in DLL schlägt fehl! Allgemeine Java-Themen 1
C Entschlüsselung schlägt fehl Allgemeine Java-Themen 1
J Stringvergleich schlägt fehl Allgemeine Java-Themen 5
M Verbindung zu Webserver schlägt fehl Allgemeine Java-Themen 0
Thallius Serialisierung schlägt fehl. Allgemeine Java-Themen 3
P Kosinusberechnung schlägt fehl Allgemeine Java-Themen 5
B Reflection: getMethods schlägt fehl (NoClassDefFoundE)) Allgemeine Java-Themen 15
A mit .equals Array befüllen schlägt teilweise fehl Allgemeine Java-Themen 3
N Input/Output Vergleich von identischen Strings schlägt fehl Allgemeine Java-Themen 5
S mkdirs schlägt fehl Allgemeine Java-Themen 5
T Lesezugriff auf Consolenprogramm schlägt fehl Allgemeine Java-Themen 9
M Casten von Liste nach Array schlägt fehl?? Allgemeine Java-Themen 3
GilbertGrape Warum schlägt JUnit-Test fehl? Allgemeine Java-Themen 19
J Jar datei erstellen schlägt fehl Allgemeine Java-Themen 3
Q Rotation von Bildern schlägt fehl Allgemeine Java-Themen 8

Ähnliche Java Themen

Neue Themen


Oben