Javaは、小規模の注釈します

urlで指定されたJavaアノテーションの仕方は、キーを含める必要があります。

輸入java.lang.annotation.ElementType。
輸入java.lang.annotation.Retention。
輸入java.lang.annotation.RetentionPolicy。
輸入java.lang.annotation.Target;
インポートをjava.lang.reflect.Field;
輸入java.util.HashMapを;
輸入はjava.util.HashSet。
輸入java.util.Map;
輸入java.util.Set; 

パブリック クラスAnnotationTest { 
    @Target(ElementType.FIELD)
    @Retention(RetentionPolicy.RUNTIME)
    パブリック @のインタフェースCbdLinkAnnotation {
         列挙TYPE {OPTIONAL、REQUIRED}

        TYPE値()デフォルトTYPE.OPTIONAL。
    } 

    パブリック 静的 クラスA { 
        @CbdLinkAnnotation(値 = CbdLinkAnnotation.TYPE.OPTIONAL)
         パブリック 静的 最終 = "KEY1"文字列KEY1 
        @CbdLinkAnnotation(値 = CbdLinkAnnotation.TYPE.REQUIRED)
         パブリック 静的 最終 = "KEY2"文字列KEY2 

        公共の地図<文字列、文字列>マップ= 新しい HashMapの<> (); 

        公共A(文字列のURL){
             //TODO:<文字列、文字列>地図する文字列を変換
        } 
    } 

    パブリック 静的 ボイドメイン(文字列[]引数){ 
        セットの<string>設定= 新しい HashSetのを<> (); 
        フィールド[]フィールド = A.のクラス.getFields()。
        (フィールドフィールド:フィールド){ 
            CbdLinkAnnotation []注釈 = field.getAnnotationsByType(CbdLinkAnnotation クラス)。
            もし(!注釈= ヌル){
                 のために(CbdLinkAnnotation注釈:注釈){
                     場合(annotation.value()== CbdLinkAnnotation.TYPE.REQUIRED){ 
                        set.add(field.getName())。
                    } 
                } 
            } 
        } 

        A = 新しい A( "your_custom_string KEY1 =値1&KEY2 = value2の?" )。
        以下のため:(Stringをセット){
             場合(!a.map.containsKey(S)){
                 スロー 新しいのRuntimeException( "キー" + S + "が。必要とします" ); 
            } 
        } 
    } 
}

 

(デフォルトKEY2は、例外をスロー空である)テストを実行します。

 

おすすめ

転載: www.cnblogs.com/areful/p/11417376.html