Objekt nach Int casten?

smoooochy

Grünschnabel
Ich habe folgendes Problem. Ich möchte aus einem Tabellenobjekt einen Wert mit einem Integer vergleichen.

Code:
if(punkte > (Tabellenmodell.getValueAt(i, 1))

ich hab es schon mit (int)Tabellenmodell... versucht aber das funktioniert nicht.

Danke für die schnelle Hilfe
 
Hi smoooochy,

Ich würde den Umweg über einen String gehen:

Code:
int i = 1; //Spalte
int j = 1; //Zeile
        
//überprüfen ob die Spalte auch den Typ Integer hat
if ((JTable.getModel().getColumnClass(i).getName()).equals("java.lang.Integer") ) {  
   //Object erst in String umwandeln, dann in Integer parsen
   int value = Integer.parseInt( (JTable.getModel().getValueAt(j,i)).toString() );
   //hier kannst du deinen Vergleich hinschreiben
   if (punkte > value)
      ....
} else {
   //Wenn nicht vom Typ Integer, dann ...
   System.out.println("Kein Integer-Wert");
}


Vielleicht hat jemand noch eine bessere Idee aber ich hoffe es hilft dir weiter
Gruß Kevin
 
Zuletzt bearbeitet:
Hi,
ich weiß nicht ob das bei dir funktioniert, da ich noch nie mit Tabellen gearbeitet habe, aber bei mir wurde bei folgendem Beipspiel kein Kompilierfehler angezeigt, nur ein ClassCastException:
Java:
public void main(String args[]) throws ClassCastException{
    Object test = new Object();
     //Eine Wrapper-Klassen-Objekt-Instanz erzeugen
     Integer i = (Integer)test; //hier knallst bei diesem Beispiel
     int x = i; //würde es funktionieren, könntest würdest du hier durch Autoboxing einen wach echten int bekommen
}
Ich hoffe ich konnte dir helfen.
Ciao
DosCoder
 
Ich habe folgendes Problem. Ich möchte aus einem Tabellenobjekt einen Wert mit einem Integer vergleichen.

Code:
if(punkte > (Tabellenmodell.getValueAt(i, 1))

ich hab es schon mit (int)Tabellenmodell... versucht aber das funktioniert nicht.

Danke für die schnelle Hilfe

Das Problem ist, dass bei (int)Tabellenmodell.getValueAt(i,1) das Tabellenmodell auf int gecastet wird.

Versuch's mal so:

(int)(Tabellenmodell.getValueAt(i,1))
 
Ein Object kann schlecht in einen int gecastet werden. Ein int ist primitiv und daher überhaupt kein Object.

Casten auf Integer sollte gehen, sofern denn überhaupt Zahlen drin stehen:
Java:
if(punkte > ((Integer)Tabellenmodell.getValueAt(i, 1)).intValue())
 
Java:
try {
			Object o = new Object();
			int i = Integer.valueOf(o.toString());
		} catch (Exception e) {
			e.printStackTrace();
		}
 
Moin,

oder auch, falls es ein String ist :
Java:
try 
{
    String strTest = "123";
    int iZahl = Integer.valueOf( strTest ).intValue();
} 
catch (Exception e) 
{
    e.printStackTrace();
}

Gruß
Klaus
 

Neue Beiträge

Zurück