2011-08-10 16 views
7

मुझे समस्या है।सरणी वर्ग का नाम पुनर्प्राप्त करना

एक विधि में मैं पैरामीटर के रूप में एक सामान्य वस्तु प्राप्त हो जाएगा और मैं कक्षा

public void myMethod(Object o) 
    String className = o.getClass().getName(); 
    ... 
} 

यह काम करता है, के नाम को छोड़कर जब मैं तरीकों सरणियों को देने को पुनः प्राप्त करने के लिए है। उदाहरण के लिए विधि के लिए एक पास डबल (double[]) की एक सरणी, getClass().getName() मुझे वापस लौट आता है [D

मैं double[] की तरह कुछ कैसे प्राप्त कर सकते हैं?

उत्तर

12

[D का मतलब युगल की एक सरणी है। कक्षा नामों पर स्पष्टीकरण के लिए this link देखें। आपको इसके बजाय double[] क्यों कुछ पसंद आएगा?

+1

+1। पहले कभी नहीं देखा, कुछ नया सीखा! – Qwerky

+3

@ फोर्टेगा मुझे डबल की आवश्यकता है [] क्योंकि यह [डी से अधिक स्पष्ट है, मैंने सोचा था कि [डी एक अद्वितीय अद्वितीय पहचानकर्ता हो सकता है। वैसे भी 'getCanonicalName' डबल लौटाता है [] – Maverik

+0

यदि आप जावाडॉक लिंक बना रहे हैं तो 'डबल []' की आवश्यकता का एक कारण है। – aliteralmind

1

आप आवरण वर्ग का उपयोग कर दे, तो आप प्राप्त '[Ljava.lang.Double'

Double[] d = new Double[10] 

d.getClass()। GetName() आप देता है [Ljava.lang.Double

System.out.print(new String[0].getClass().getSimpleName()); 

और परिणाम में अच्छी तरह से हो सकता है:

+1

@ लुकाघेरा: वैसे भी, जैसा कि आपने कहा था, getCannonicalName आपको दोबारा देता है [] –

2

वर्ग के सरल नाम आप के लिए क्या देख रहे है

+०१२३५१६४१०६१ लिंक के लिए
String[] 
संबंधित मुद्दे