2012-04-01 20 views
8

मूल रूप से, जो मैं करने की कोशिश कर रहा हूं, पर आइटम स्ट्रिंग() को आमंत्रित नहीं कर सकता, आइटम आईडी प्राप्त करता है, और एक आईएनआई से मूल्य निर्धारित करता है, मूल रूप से: itemid: price लेकिन, मैं बस नहीं कर सकता item.getId()। toString()। मैं आइटम प्राप्त करने का प्रयास कर रहा हूं मैं इसे स्ट्रिंग बनाने के लिए क्या कर सकता हूं?आदिम प्रकार 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); 
    } 
} 

मेरी कोड है, यही कारण है कि (जाहिर है मैं item.getId में त्रुटि है()। ToString()), मैं एक स्ट्रिंग के लिए कि कन्वर्ट करने के लिए क्या कर सकते हैं?

+3

स्ट्रिंग itemID = "" + item.getId(); –

+0

क्षमा करें यह एक पूर्ण उत्तर नहीं है (क्योंकि मेरे पास टिप्पणी करने के लिए पर्याप्त विशेषाधिकार नहीं है) लेकिन क्या आपने आइटम कक्षा में आईडी के लिए toString() विधि लिखा था? या केवल Integer.toString (item.getId() का उपयोग करें यदि आईडी एक आदिम प्रकार है। –

उत्तर

45

आदिम प्रकार के तरीकों के रूप में वे जावा में ऑब्जेक्ट नहीं है नहीं है,। आप मिलान वर्ग का उपयोग करना चाहिए:

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

इसे समझाने के लिए धन्यवाद। –

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

आह हाँ, मैंने इस बारे में पहले क्यों नहीं सोचा था! धन्यवाद! –

+0

@ क्वांटममैकेनिक: आपने मुझे हराया। –

-1

आदिम प्रकार (पूर्णांक, डबल, बाइट आदि ..) पद्धतियां नहीं हो सकतीं। तो इस का उपयोग करें:

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

एक और आसान तरीका सिर्फ "" + myInt कहने के लिए, यह मानते हुए मींट निर्दिष्ट किया जाए।

तो कोशिश:

item.getDefinitions().setValue("" + Integer.parseInt(split[1])); 
बेशक

, तुम वहाँ पार्सिंग त्रुटियाँ या विभाजन कर रहे हैं मामले में आज़माएं/कैच में लाइन रैप करने के लिए चाहते हो सकता है [1] अशक्त, सीमा, आदि से बाहर सूचकांक है

वैकल्पिक रूप से, विधि Integer.valueOf(str) एक इंटीजर ऑब्जेक्ट (एक आदिम के विपरीत) लौटाएगी जो आपको सीधे .toString() फ़ंक्शन को कॉल करने की अनुमति देगी।

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

मैं विशेष रूप से .valueOf की तरह(), क्योंकि यह कई पूर्णांक वस्तुओं संचित करता है।

संबंधित मुद्दे