2012-04-02 11 views
21

जावा में विधियों के लिए एक सामान्य या मानक एनोटेशन है, जबकि परिभाषित किया गया है, अभी तक लागू नहीं किया गया है?जावा: "अभी तक कार्यान्वित नहीं किया गया" के लिए सामान्य एनोटेशन

ताकि, उदाहरण के लिए, अगर मैं उस तरह

@NotImplementedYet 
public void awesomeMethodThatTotallyDoesExactlyWhatYouNeed(){ /* TODO */ } 

कुछ निहित एक पुस्तकालय का एक पूर्व अल्फा संस्करण का उपयोग कर रहे थे मैं एक संकलन समय चेतावनी जब awesomeMethodThatTotallyDoesExactlyWhatYouNeed कॉल करने का प्रयास प्राप्त होगा?

+2

अधिकांश पुस्तकालय बस उस विधि का पर्दाफाश नहीं करेंगे। क्या उल्लेख होगा? –

+1

मुझे इसका सामना करना पड़ा है, [उपयोगकर्ता के रूप में] (https://github.com/NICTA/scoobi/issues/71)। शायद भविष्य के एपीआई को एक विचार के रूप में तैरने के लिए, उपयोगकर्ताओं को इसके लिए तैयार हो जाओ? – rampion

+0

आप निश्चित रूप से अपना "@NotImplementedYet" एनोटेशन बना सकते हैं, और इसका उपयोग तब भी कर सकते हैं जब आप चाहें: http://docs.oracle.com/javase/1.5.0/docs/guide/language/annotations.html – paulsm4

उत्तर

14

आप UnsupportedOperationException का उपयोग करना चाह सकते हैं और अपने परीक्षण चलाने के दौरान अभी तक लागू होने वाले तरीकों का पता लगा सकते हैं।

+2

ओपी एक एनोटेशन की तलाश में है जो कॉलर को संकलित समय पर बताएगा कि विधि 'असमर्थितऑपरेशन अपवाद' फेंक देगी। दूसरी तरफ ऐसी एनोटेशन बनाने के लिए आसान है, वह कुछ ऐसा ढूंढ रहा है जिसे सम्मेलन –

+0

के रूप में स्वीकार किया गया है, वास्तव में समाधान का अनुरोध नहीं किया गया है, लेकिन कुछ भी बेहतर नहीं है, और कुछ हद तक ऑर्थोगोनल (अन्य तरीकों से बेहतर)। – bbarker

0

गूगल पुस्तकालयों एपीआई कि बदलने की संभावना है के लिए @Beta एनोटेशन का उपयोग लेकिन तरीकों लागू किया जाता है, हालांकि

1

आप अपनी खुद की एनोटेशन बना सकते हैं। रनटाइम प्रतिधारण नीति के साथ आप यदि आवश्यक हो तो इस एनोटेशन को देखने के लिए लक्ष्य निर्माण को कॉन्फ़िगर कर सकते हैं।

import java.lang.annotation.ElementType; 
import java.lang.annotation.Retention; 
import java.lang.annotation.RetentionPolicy; 
import java.lang.annotation.Target; 

@Target({ 
    ElementType.ANNOTATION_TYPE, 
    ElementType.METHOD, 
    ElementType.CONSTRUCTOR, 
    ElementType.FIELD}) 
@Retention(RetentionPolicy.RUNTIME) 
public @interface Unimplemented { 

    boolean value() default true; 
} 
संबंधित मुद्दे