2012-04-01 7 views
8

aufrufen Grundsätzlich, was ich versuche zu tun, ist die ID des Artikels, und setzen Sie einen Preis von einem Ini, im Grunde wie: itemid: Preis aber ich kann nicht einfach tun item.getId(). toString(). Ich versuche, Artikel zu bekommen Was kann ich tun, um es zu einer Zeichenfolge zu machen?Kann nicht toString() auf dem primitiven Typ Int

public static void getBuyPrice(Item item) { 
    try { 
     String itemId = item.getId().toString(); 
     BufferedReader br = new BufferedReader(new FileReader(new File(
       "./data/prices.ini"))); 
     String line; 
     while ((line = br.readLine()) != null) { 
      if (line.equals(itemId)) { 
       String[] split = line.split(":"); 
       item.getDefinitions().setValue(Integer.parseInt(split[1])); 
      } 
     } 
     br.close(); 
    } catch (Throwable e) { 
     System.err.println(e); 
    } 
} 

, dass mein Code ist, (natürlich habe ich den Fehler bei item.getId haben(). ToString()) Was kann ich tun, dass String in einen konvertieren?

+3

Zeichenfolge itemID = "" + item.getId(); –

+0

Entschuldigung, dies ist keine vollständige Antwort (weil ich nicht genug Rechte zum Kommentieren habe), aber hast du die toString() Methode für die ID in der Klasse Item geschrieben? oder einfach Integer.toString (item.getId(), wenn die ID ein primitiver Typ ist. –

Antwort

45

Urtyp haben Methoden nicht, da sie keine Objekte in Java sind. Sie sollten die passende Klasse verwenden:

Integer.toString(item.getId()); 
+0

Danke für die Erklärung. –

6
String itemId = Integer.toString(item.getId()); 
+0

Ah ja, warum habe ich nicht zuerst daran gedacht! Danke! –

+0

@QuantumMechanic: Du hast mich geschlagen. –

-1

Primitive Typen (int, double, Byte etc ..) können Methoden nicht haben. So verwenden:

String itemId = String.valueOf(item.getId()); 
0

Eine weitere einfache Möglichkeit ist nur "" + myInt zu sagen, unter der Annahme, myInt zugeordnet ist.

So versuchen:

item.getDefinitions().setValue("" + Integer.parseInt(split[1])); 

Natürlich sollten Sie die Zeile in einem try/catch falls es Parsing-Fehler oder Split [1] ist null, Index außerhalb des zulässigen Bereichs wickeln, usw.

Alternativ gibt die Methode Integer.valueOf(str) ein Integer-Objekt (im Gegensatz zu einem Primitiv) zurück, mit dem Sie die Funktion .toString() direkt aufrufen können.

Ich mag besonders .valueOf(), weil es viele Integer-Objekte zwischenspeichert.

Verwandte Themen