2012-04-01 10 views
8

için toString() yöntemi çağrılmıyor Temel olarak, yapmaya çalıştığım şey, öğe kimliğini alması ve ini'den temelde bir fiyat belirlemesidir: itemid: price , ancak yapamam item.getId(). toString(). Öğeyi almaya çalışıyorum Bir ip yapmak için ne yapabilirim? kodumu vardır İlkel tür 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); 
    } 
} 

(tabii ki item.getId de hata var(). toString()), bir dizeye o dönüştürmek için ne yapabilirim? onlar Java nesneleri olmadıklarından

+3

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

+0

Üzgünüz, bu tam bir cevap değil (yorum yapmak için yeterli ayrıcalığa sahip değilim), ancak Item sınıfındaki ID için toString() yöntemini yazdınız mı? ya da sadece Integer.toString (item.getId(), kimlik ilkel bir tür ise kullanın. –

cevap

45

İlkel türleri, yöntemleri yok. Sen eşleştirme sınıfını kullanmalısınız:

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

Açıkladığın için teşekkürler. –

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

Ah evet, neden bu kadarını hiç düşünmedim! Teşekkürler! –

+0

@QuantumMechanic: beni yeniyorsun –

-1

İlkel türleri (int, double, bayt vb ..) yöntemleri olamaz. Yani bu kullanın:

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

diğer basit yolu sadece myInt atanır varsayarak "" + myInt söylemektir.

Yani deneyin: Elbette

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

, sen ayrıştırma hataları veya bölünmüş vardır durumda bir try/catch çizgisini kaydırmak isteyebilir [1], aralık, vb dışına endeksi null Alternatif olarak, Integer.valueOf(str) yöntemi, tam olarak .toString() işlevini çağırmanıza izin veren bir Tamsayı nesnesini (ilkelin aksine) döndürecektir.

item.getDefinitions().setValue(Integer.valueOf(split[1]).toString()); 

Özellikle çok sayıda Tamsayı nesnesini önbelleğe aldığından .valueOf() yöntemini seviyorum.