2010-06-12 23 views
13

पर toString() आह्वान नहीं कर सकता अगर मैं nllen जा रहा हैएंड्रॉयड: आदिम प्रकार int

int nllen = nl.getLength(); 

साथ

nltxt = nllen.toString(); 

कोशिश मैं त्रुटि मिलती है

पर toString() आह्वान नहीं किया जा सकता आदिम प्रकार int।

मैं int को स्ट्रिंग में कनवर्ट करना चाहता हूं ताकि मैं लॉग के साथ प्रविष्टियों की संख्या प्रदर्शित कर सकूं ... यह क्यों काम नहीं करता है?

उत्तर

12

आदिम प्रकार वस्तुएं नहीं हैं और इस तरह के पास कोई तरीका नहीं है।

इसे स्ट्रिंग उपयोग String.valueOf(nlTxt) में परिवर्तित करने के लिए।

29

Primitives में कोई फ़ील्ड या विधियां नहीं हैं। कभी-कभी संकलक इस मामले में आपके प्राइमेटिव को संबंधित कक्षा, Integer में "ऑटोबॉक्स" करेगा। शायद इस मामले में आप यही उम्मीद करते हैं। कभी-कभी संकलक ऐसा नहीं करेगा। इस मामले में यह स्वचालित रूप से इसे ऑटोबॉक्स नहीं करता है।

आप कुछ ही विकल्प हैं:

  1. String.valueOf(nltxt)

  2. "" + nltxt (या यदि आप कुछ उपयोगी नंबर के साथ लिखने के लिए है, कर "nltxt equals " + nltxt

  3. "autoboxing" करो मैन्युअल रूप से: new Integer(nltxt).toString()

  4. प्रारूप I कुछ कस्टम तरह से टी: String.format("nltxt is %d which is bad%n", nltxt)

+1

2 और 3 –

+0

का उपयोग न करें मैं उस पर सहमत हो सकता हूं कि 3 थोड़ा उलझन में है। लेकिन क्यों नहीं 2? – aioobe

+1

aioobe: यह बहुत पठनीय नहीं है। अगर कोई कोड के माध्यम से जल्दी से स्कैन कर रहा है तो उन्हें याद आ सकता है कि आप इसे एक मजबूत में बदलने की कोशिश कर रहे थे। – Mike

6

आप भी इस के लिए Integer.toString(nllen); इस्तेमाल कर सकते हैं।

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