liefert isArray ein falsches Resultat?

Andi_CH

Top Contributor
Im Zusammenhang mit allgemeiner Programmierung bin ich auf ein Problem gestossen.

Man kann Arrays mit beliebigen Dimensonen erstellen (siehe hier)

Ich möchte einen Array mit gleicher Dimension erstellen und versuche nun die Dimension eines Arrays herauszufinden, aber das geht schief. Warum?

Java:
public class TwoDimArrays {
	private static double[][] d = {{1.0, 2.0},{3.0, 4.0}};

	public static void checkArray(Object o, int stufe) {
		if (stufe>10) {
			System.out.println("ABBRUCH!");
			return;
		}
		if (o.getClass().isArray()) {
			System.out.println(stufe + " ist ein Array");
			Object[] oa = (Object[]) o;
			checkArray(oa[0], stufe+1);
		} else {
			System.out.println(stufe + " ist kein Array");
		}
	}

	public static void main(String[] args) {
		checkArray(d, 1);
	}
}

Output:
Code:
1 ist ein Array
2 ist ein Array
Exception in thread "main" java.lang.ClassCastException: [D cannot be cast to [Ljava.lang.Object;
	at com.javaforum.casting.TwoDimArrays.checkArray(TwoDimArrays.java:16)
	at com.javaforum.casting.TwoDimArrays.checkArray(TwoDimArrays.java:17)
	at com.javaforum.casting.TwoDimArrays.main(TwoDimArrays.java:41)
 
M

maki

Gast
isArray funktioniert, aber ein double Array kann nie und nimmer in ein Objekt Array gecastet werden, sind unterschiedliche Tiere.
 

Marco13

Top Contributor
Mit sowas wie
Code:
void checkArray(Class<?> c)
{
        ...
    if (c.isArray())
    {
        checkArray(c.[B]getComponentType[/B](), stufe+1);    
        ...
}
sollte es gehen.
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
F javaxt.io.Image getBufferedImage liefert null AWT, Swing, JavaFX & SWT 1
C JavaFX mit .setText() befülltes Textfield liefert anschließend mit .getText() den ursprünglichen Wert? AWT, Swing, JavaFX & SWT 1
T JavaFx Examples ändern liefert unerwartetes Ergebnis AWT, Swing, JavaFX & SWT 5
Arif Swing MouseMotionListener liefert falsche Werte ? AWT, Swing, JavaFX & SWT 7
R wann liefert getEditingRow was brauchbares ? AWT, Swing, JavaFX & SWT 2
R Swing JTextField getText() liefert leeren String AWT, Swing, JavaFX & SWT 6
O getValueAt liefert "", aber es wird was angezeigt AWT, Swing, JavaFX & SWT 12
J valueChanged()-Methode liefert unbrauchbare Daten AWT, Swing, JavaFX & SWT 4
S Swing Setzen von TableModel liefert NullPointer AWT, Swing, JavaFX & SWT 6
R MouseEvent.getX() liefert in Applet Screen-Koordinate AWT, Swing, JavaFX & SWT 2
T Swing Laden eines Icons auf JButton liefert NullPointerException AWT, Swing, JavaFX & SWT 8
M JTable, editCellAt liefert false AWT, Swing, JavaFX & SWT 4
R Swing JDialog liefert immer false, 2 JListen verknüpfen AWT, Swing, JavaFX & SWT 3
B Swing JTable getSelectedRow() liefert immer -1 AWT, Swing, JavaFX & SWT 6
B JTable getselectedrow liefert -1 wenn Focus verloren AWT, Swing, JavaFX & SWT 4
C getGraphics() liefert nur null AWT, Swing, JavaFX & SWT 4
G JTable liefert falsche Row AWT, Swing, JavaFX & SWT 8
T jTable getSelectedRow liefert nix AWT, Swing, JavaFX & SWT 4
H getGraphics() eines JPanel liefert immer null zurück AWT, Swing, JavaFX & SWT 6
B getComponentAt() liefert immer das Panel AWT, Swing, JavaFX & SWT 2
P [JTable] Warum liefert TableModelEvent.getColumn immer -1 AWT, Swing, JavaFX & SWT 7
V Click auf JTable (Zeile) liefert den Eintrag? AWT, Swing, JavaFX & SWT 11
Z createImage() liefert null zurück AWT, Swing, JavaFX & SWT 4
J Falsches Rendern durch JCheckBox in eigenem JTree AWT, Swing, JavaFX & SWT 6
B Falsches GUI AWT, Swing, JavaFX & SWT 1
M Falsches Ergebnis bei Bildrotation AWT, Swing, JavaFX & SWT 1
M Trotz richtiger Daten, falsches Bild wird gezeichnet?! AWT, Swing, JavaFX & SWT 4
C BufferedImage-Fehler? Falsches Bild wir gezeichnet AWT, Swing, JavaFX & SWT 5
L Falsches Fenster erscheint im Vordergrund bei Taskwechsel AWT, Swing, JavaFX & SWT 3
R Falsches Beispiel im Buch? AWT, Swing, JavaFX & SWT 4

Ähnliche Java Themen


Oben