Typecast

Status
Nicht offen für weitere Antworten.

my_key

Mitglied
Hallo

hab 2 Fragen:
0.
Hier bekomme ich die Fehlermeldung: "java.lang.ClassCastException: java.lang.Integer"
Java:
Object a = new Integer(4);
System.out.println((Double) a);
wie kann ich aber trotzdem den wert von a herausfinden?


1.
Java:
System.out.println(new Double[]{ }.getClass());
// gibt aus: class [Ljava.lang.Double;
Wie bekomme ich den typ des Arrays, also NICHT wie ausgegeben wurde "class [Ljava.lang.Double" sondern: "class java.lang.Double"

MFG my_key
 

faetzminator

Gesperrter Benutzer
1. Warum versuchst du in Double zu casten? Cast einfach wieder nach Integer und hol dir die valu.
2. Das ist ja ein Double[] und nicht Double, was ist da das Problem? Du kannst allenfalls (new Double[1])[0].getClass() aufrufen, musst allerdings mindestens die Grösse 1 haben.
 

my_key

Mitglied
1. Warum versuchst du in Double zu casten? Cast einfach wieder nach Integer und hol dir die valu.
Weil Methode ein Object Typ als parameter hat. Jetzt kann man natürlich nicht wissen ob dieses Object ein Integer, Float ... (Dass es ein Zahlentyp ist, wurde schon garantiert) ist. Damit ich mit diesem Wert weiter komme brauche ich den Double oder von mir aus double Wert.

2. Das ist ja ein Double[] und nicht Double, was ist da das Problem? Du kannst allenfalls (new Double[1])[0].getClass() aufrufen, musst allerdings mindestens die Grösse 1 haben.
Ich muss einfach den Typ für die einzelnen Daten IN dem Array wissen. Da das Array mit new Double[] { .. } erstellt wurde, muss es ja irgendeine abfrage geben die Double zurück gibt oder. Sollte aber auch mit leeren Arrays funktionieren
 

Schandro

Top Contributor
Weil Methode ein Object Typ als parameter hat. Jetzt kann man natürlich nicht wissen ob dieses Object ein Integer, Float ... (Dass es ein Zahlentyp ist, wurde schon garantiert) ist. Damit ich mit diesem Wert weiter komme brauche ich den Double oder von mir aus double Wert.
Caste es nach "Number". Dann ruf doubleValue() darauf auf.
 

faetzminator

Gesperrter Benutzer
Den erste Punkt hast du doch mit
Java:
if (array.length > 0) {
    System.out.println(array[0].getClass());
}
 
Status
Nicht offen für weitere Antworten.

Ähnliche Java Themen

Neue Themen


Oben