केवल कक्षा का नाम हो रहा है। वर्गनाम ()


87

मैं कक्षा का नाम कैसे ले सकता हूं

String.class.getName()  returns java.lang.String


मुझे केवल अंतिम भाग प्राप्त करने में दिलचस्पी है, केवल स्ट्रिंग
एनी एपी ही ऐसा कर सकता है?


4
जावा में महान ऑनलाइन प्रलेखन है। नीचे दिया गया andyb पेज एक उदाहरण है। जब भी आपके पास किसी वर्ग या पैकेज से उपलब्ध सटीक कार्यक्षमता के बारे में कोई प्रश्न होता है, तो javadocs "Goava 6 <पैकेज या प्रश्न में वर्ग" के रूप में खोजना आसान होता है।
jpm

जवाबों:


182

9
String.class.getSimpleName () -> स्ट्रिंग, जहां String.class.getName () -> java.lang.String
पीटर

धन्यवाद, @ कैंडीब getSimpleName()क्लास नाम माइनस द पैकेज नाम तक पहुंचना आसान है। सिंटेक्स: object.getClass().getSimpleName() नमूना कोड
अभिजीत

इसे स्थिर स्ट्रिंग चर के लिए कैसे सौंपा जाए। यह एंड्रॉइड स्टूडियो में एक त्रुटि दिखा रहा है।
मोहनराज एस

आंतरिक कक्षाओं के लिए काम नहीं करता है: यह सिर्फ पैकेज ही नहीं, एनक्लोजिंग क्लास के नाम को भी हटा देगा।
टूलबार

9

नीचे दोनों तरीके ठीक काम करते हैं।

System.out.println("The Class Name is: " + this.getClass().getName());
System.out.println("The simple Class Name is: " + this.getClass().getSimpleName());

नीचे के रूप में उत्पादन:

कक्षा का नाम है: पैकेज

सरल वर्ग का नाम है: छात्र


7

या प्रोग्राममैटिक

String s = String.class.getName();
s = s.substring(s.lastIndexOf('.') + 1);

1
यह मैं मदद की के रूप में मैं नहीं कर सकते मेरी ढांचा ... Tq से getSimpleName () का उपयोग
ठग

1
इसके अलावा, प्रोग्रामेटिक दृष्टिकोण से अनाम कक्षाओं के लिए समझदार परिणाम मिलते हैं।
हॉलिस वेट

@Imposter आप जावा 1.5 की तुलना में कुछ पहले उपयोग कर रहे हैं?
चुपके रब्बी

आपको उस मामले को संभालने की आवश्यकता है जहां कोई नहीं .मिला है।
Eckes

@ ईकेएस अगर डॉट नहीं मिला है, तो परिणाम -1 होगा, 1 को जोड़ने से आपको इंडेक्स 0 पर शुरू होने वाला एक विकल्प मिल जाएगा - इस मामले में आपको वास्तव में क्या चाहिए। (मैं बस के साथ परीक्षण किया है int[], परिणाम है "[I"।)
टूलबार

4

आप क्लास नाम के साथ प्रिंट लॉग के लिए निम्नलिखित सरल तकनीक का उपयोग कर सकते हैं।

private String TAG = MainActivity.class.getSimpleName();

मान लीजिए हमें विधि में आने वाले परिवर्तनीय मूल्य की जांच करनी है तो हम लॉग की तरह उपयोग कर सकते हैं:

private void printVariable(){
Log.e(TAG, "printVariable: ");
}

इस लाइन का महत्व यह है कि, हम क्लास के नाम के साथ विधि का नाम भी देख सकते हैं। इस प्रकार के लॉग को लिखने के लिए।

लिखना: - लॉग इन करें और दर्ज करें।

कंसोल पर प्रिंट करेगा

E/MainActivity: printVariable:

2

Social.class.getSimpleName ()

getSimpleName (): स्रोत कोड में दिए गए अंतर्निहित वर्ग का सरल नाम लौटाता है। यदि कोई अंतर्निहित वर्ग अनाम है, तो एक रिक्त स्ट्रिंग देता है। किसी सरणी का सरल नाम "[]" के साथ घटक प्रकार का सरल नाम है। विशेष रूप से एक सरणी का सरल नाम जिसका घटक प्रकार अनाम है "[]"।


1

यहाँ वस्तु गुणों तक पहुँचने का ग्रूवी तरीका है:

this.class.simpleName    # returns the simple name of the current class

-2

पथ के बजाय सरल नाम प्राप्त करें।

String onlyClassName =  this.getLocalClassName(); 

onCreate में विधि के ऊपर कॉल करें


अधूरा हल।
पीएलजी

यदि आप विधि के लिए स्रोत प्रदान नहीं करते हैं तो ओपी इसका उपयोग करने में सक्षम नहीं होगा।
19'19
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.