Avatar ·

getName(), getCanonicalName() और getSimpleName() में Java में क्या अंतर है?

नमस्ते! मैंने अभी Java में reflection सीखना शुरू किया है और तीन methods पर ध्यान गया: `getName()`, `getCanonicalName()` और `getSimpleName()`। मैं पूरी तरह से नहीं समझ पाया कि ये कैसे अलग हैं। उदाहरण के लिए, मेरे पास `com.example.model` package में एक सरल class `Person` है। मैंने ऐसा कोड लिखने की कोशिश की: ```java package com.example.model; public class Person { public static void main(String[] args) { Class clazz = Person.class; System.out.println("getName: " + clazz.getName()); System.out.println("getSimpleName: " + clazz.getSimpleName()); System.out.println("getCanonicalName: " + clazz.getCanonicalName()); } } ``` तीनों methods कुछ समान आउटपुट देते हैं: `getName` `com.example.model.Person` दिखाता है, `getSimpleName` सिर्फ `Person`, और `getCanonicalName` भी `com.example.model.Person`। लेकिन मैंने सुना है कि nested classes या arrays के लिए ये अलग हो सकते हैं। क्या आप वास्तविक उदाहरणों से समझा सकते हैं कि किन स्थितियों में ये methods अलग परिणाम देते हैं और कब किसका उपयोग करना चाहिए?