グラフィックjdk1.8の新機能(3)---注意事項および最適化された型推論

グラフィックjdk1.8の新機能(3)---注意事項および最適化された型推論

同じタイプのより多くのノートを見ます

jdk1.8 java.lang.Class新しいメソッドのクラスはgetAnnotationsByType次のように、方法は、注釈のタイプのリストを取得することができ、特定のコードの例です。

public class AnnotationTest {
    
    @Target(ElementType.TYPE)
    @Retention(RetentionPolicy.RUNTIME)
    public @interface Filters {
        Filter[] value();
    }
    
    @Target(ElementType.TYPE)
    @Retention(RetentionPolicy.RUNTIME)
    @Repeatable(Filters.class)
    public @interface Filter {
        String value();
    }
    
    @Filter("filter1")
    @Filter("filter2")
    public interface Filterable {
        
    }
    
    @Filters({@Filter("filter1"), @Filter("filter2")})
    public interface Filterable2 {
        
    }
    
    public static void main(String[] args) {
        for (Filter filter : Filterable.class.getAnnotationsByType(Filter.class)) {
            System.out.println(filter.value());
        }
        for (Filters filter : Filterable.class.getAnnotationsByType(Filters.class)) {
            System.out.println(filter.value().length);
        }
        for (Filter filter : Filterable2.class.getAnnotationsByType(Filter.class)) {
            System.out.println(filter.value());
        }
        for (Filters filter : Filterable2.class.getAnnotationsByType(Filters.class)){
            System.out.println(filter.value().length);
        }
    }
}

输出如下:
filter1
filter2
2
filter1
filter2
2

より良い型推論

上記のことがわかるgetOrDefaultjdk1.8前に、以下の形式で記述する場合には、第2のパラメータは、最初のパラメータによって推測することができます。

value.getOrDefault("asas", Value.<String>defaultValue());

注釈のさらなる拡大

  • jdk1.8は、コンテキスト注釈を拡張し、注釈は、現在ではほとんどどこにでも追加されます:ローカル変数、ジェネリッククラス、およびクラスが⽗コネクタを実装し、さらに異常な救済にも注釈を追加することができます
  • ElementType.TYPE_USEとElementType.TYPE_PARAMETERは2つの新しく追加された使用ファイルは、適切な注釈型垂直要素に記述されています

おすすめ

転載: www.cnblogs.com/Kidezyq/p/11753522.html