मुझे लगता है कि आप इस विधि को परिभाषित करने वाला इंटरफ़ेस बना सकते हैं। इस तरह, आपकी कक्षा विधि को ओवरराइड कर देगी और कोई चेतावनी नहीं होनी चाहिए।
FromXML.java:
public @interface FromXML {
}
MyInterface.java:
public interface MyInterface {
@FromXML
public void onSomethingClick(View v);
}
MyClass.java
public MyClass implements MyInterface {
@Override
@FromXML
public void onSomethingClick(View v){
}
}
संपादित करें: एक अन्य समाधान हो सकता है सार के रूप में अपने विधि को परिभाषित करने के। दरअसल, जैसा कि मैं आपका कोड समझता हूं, आपकी विधियां सिर्फ घोषणा है (कार्यान्वयन एक एक्सएमएल फ़ाइल में हैं)। इसलिए, आपकी समस्या एक आईडीई समस्या से अधिक डिज़ाइन समस्या है (आपका आईडीई चेतावनी के बारे में सही है)। हकीकत यह है कि आपकी विधि सार है और कहीं और परिभाषित की गई है।
इस प्रकार, सार रूप में अपने विधि को परिभाषित समस्या का समाधान होगा, लेकिन आप वर्ग सार बनाने के लिए होगा:
public abstract class MyClassUsingOnSomethingClick {
/*
* All the class implementation can be here as the normal class.
*/
@FromXML
public abstract void onSomethingClick(View v);
}
मुझे पता है तुम कहूँगा इस समाधान यह असंभव वस्तु आसानी से बनाने के लिए है कि लेकिन आप दो समाधान तो होगा:
1 - अपने वस्तुओं इनलाइन बनाएँ:
MyClassUsingOnSomethingClick a = new MyClassUsingOnSomethingClick() {
@Override
@FromXML
public void onSomethingClick(View v) {}
};
2 - अपने सारमें एक कारखाने पद्धति बनाएं 0:
public static final MyClassUsingOnSomethingClick createEmptyMyClassUsingOnSomethingClick() {
return new MyClassUsingOnSomethingClick() {
@Override
@FromXML
public void onSomethingClick(View v) {}
};
}
// and then, create with: :
MyClassUsingOnSomethingClick a = MyClassUsingOnSomethingClick.createEmptyMyClassUsingOnSomethingClick();
है, तब भी मैं समझता हूँ कि आप एक तेजी से समाधान पसंद करते हैं, मेरा मानना है कि यह समाधान है कि साफ है क्योंकि:
- यह ऑब्जेक्ट ओरिएंटेड प्रोग्रामिंग दर्शन सम्मान करता है।
- यह एक आईडीई के लिए विशिष्ट नहीं है।
- यह बचा जाता है एनोटेशन प्रसंस्करण उपकरण (जो, मेरी राय में बहुत समझदारी से इस्तेमाल किया जाना चाहिए)
मुझे यकीन नहीं है लेकिन मुझे लगता है कि यह लेख: http://technicalmumbojumbo.wordpress.com/2008/01/13/java-custom-annotations/ का समाधान है, @Retention –
आपकी कस्टम एनोटेशन और 'v' पैरामीटर के पास एक दूसरे के साथ कुछ लेना देना नहीं है। "अपनी कस्टम एनोटेशन एक्ट को एक दबाने वाली चेतावनी अधिनियम" की तरह गड़बड़ न करें। भाषा के दायरे से, आईडीई अप्रयुक्त पैरामीटर के बारे में आपको बहुत सही चेतावनी देता है, क्योंकि एक या अधिक आने वाले डेटा को अनदेखा किया जाता है। – gyorgyabraham
@gyabraham I ' एन एनोटेशन को उन जगहों पर इस्तेमाल किया जा सकता है जहां मेरे पास विधि पर केवल एक इनपुट var होगा। इसलिए मैं ** ** चाहता हूं कि उन्हें एक दूसरे के साथ करना पड़े। (यदि इसमें 0 वर्र्स या 1 से अधिक var थे संभावित रूप से एक त्रुटि दे सकता है) – Blundell