मेरा जावा जंगली है इसलिए कृपया मेरे साथ भालू। सी में मैं कर सकता हूं:जावा स्थैतिक विधि घोषणा में वर्तमान वर्ग का उपयोग
int someFunc(void)
{
printf("I'm in %s\n", __func__);
}
जावा में, क्या मैं वर्तमान में परिभाषित प्रकार के नाम या वर्ग को लेक्सिक रूप से प्राप्त कर सकता हूं। उदाहरण के लिए, अगर मेरे पास है:
import org.apache.log4j.Logger;
class myClass {
private static final Logger logger = Logger.getLogger(myClass.class);
...
}
यह गलत getLogger() बहस में "myClass" दोहराने के लिए लगता है। मुझे "getLogger (__ CLASS__)" या "getLogger (this.class)" या कुछ चाहिए। (मुझे पता है कि उनमें से दोनों मूर्ख हैं लेकिन उन्हें उस बिंदु को इंगित करना चाहिए जो मैं ढूंढ रहा हूं।) क्या जावा कंपाइलर वास्तव में नहीं जानता कि यह किस वर्ग में है, क्योंकि यह स्रोत को संसाधित करता है?
तुम भी उदाहरण चर के रूप में यह है और का उपयोग करें "this.getClass सकता है पाने के लिए() "। उदाहरण विशेषता का उपयोग करना एक बेहतर विचार होगा, बशर्ते कि आपको वास्तव में कक्षा विशेषता के रूप में इसकी आवश्यकता न हो। – OscarRyz
संकलक जानता है कि यह कौन सी कक्षा है, लेकिन क्या आप नहीं जानते कि आप कौन सी कक्षा लिख रहे हैं? क्षमा करें, बस मजाक कर रहा है ... मुझे वह समस्या थी - लगभग एक ही कोड - लेकिन मुझे MyClass.class से बेहतर कुछ नहीं मिला है: -/कोड टेम्पलेट्स और रीफैक्टरिंग के साथ एक अच्छा आईडीई होना चाहिए ... –
मेरी इच्छा है जावा यह था। मैं सिंटैक्स 'static.class' की अनुशंसा करता हूं। – Boann