Cannot invoke toString() on the primitive type int
Im Grunde, was ich versuche zu tun, ist die Artikel-ID, und legen Sie einen Preis aus einer ini, die im Grunde wie: itemid:Preis
aber, ich kann einfach nicht tun, Punkt.getId().toString().
Ich versuche, zu bekommen, Artikel
Was kann ich tun, damit es ein string?
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 ist mein code (habe ich natürlich den Fehler in der Position.getId().toString()), Was kann ich tun, um zu konvertieren, dass zu einem string?
- String itemID = ""+item.getId();
- Sorry das ist nicht eine vollständige Antwort (weil ich keine ausreichenden Berechtigungen zum Kommentar), aber hast du schreiben Sie die toString () - Methode für die ID in der Item-Klasse ? oder nutzen Sie einfach Integer.toString(item.getId (), falls die ID einem primitiven Typ.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Primitive Typen haben keine Methoden, denn Sie sind keine Objekte in Java. Sollten Sie die passende Klasse:
Primitive Typen (int, double, byte, etc..) nicht haben können-Methoden.
Nutzen Sie also diese :
Weiterer einfacher Weg ist, einfach zu sagen:
"" + myInt
, vorausgesetzt, myInt zugeordnet ist.So versuchen:
Natürlich können Sie wollen, wickeln Sie die Zeile in einen try/catch-in Fall gibt es-parsing-Fehler oder split[1] ist null, index out of range, etc.
Alternativ die Methode
Integer.valueOf(str)
Rückgabe eines Integer-Objekts (im Gegensatz zu einem primitiven), die können Sie direkt aufrufen, die .toString() Funktion.Mag ich besonders .valueOf (), weil es viele caches Integer-Objekte.
Besser: