1. 程式人生 > >Repeatable 註解無效的問題

Repeatable 註解無效的問題

網上很多部落格只說了Repeatable如何使用,但是很多部落格都忽略的很關鍵的一點,就是gradle的配置。
這會導致按照網上的部落格去寫程式碼就會出現Repeatable不生效的問題。

所以千萬別忘了在gradle檔案中加入下面的配置:

    //指定java8
    compileOptions {
        sourceCompatibility JavaVersion.VERSION_1_8
        targetCompatibility JavaVersion.VERSION_1_8
    }

如果不引入compileOptions的這段配置:
使用的時候要這樣使用:

@Target( ElementType.TYPE )
    @Retention( RetentionPolicy.RUNTIME )
    public @interface Filters {
        Filter[] value();
    }

    @Target( ElementType.TYPE )
    @Retention( RetentionPolicy.RUNTIME )
    public @interface Filter {
        String value();
    };

    //使用大括號包裹住
    @Filters
({ @Filter( "filter1" ), @Filter( "filter2" ) }) public interface Filterable { }

引入了compileOptions配置後,可以使用快捷寫法:

@Target( ElementType.TYPE )
    @Retention( RetentionPolicy.RUNTIME )
    public @interface Filters {
        Filter[] value();
    }

    @Target( ElementType.TYPE )
    @Retention
( RetentionPolicy.RUNTIME ) @Repeatable( Filters.class )//1、這裡要著名註解的容器類 public @interface Filter { String value(); }; //2、配置了compileOptions以後,在使用的時候就可以直接使用快捷寫法啦! @Filter( "filter1" ) @Filter( "filter2" ) public interface Filterable { }

以上就是使用Repeatable需要注意的小知識點啦 (#^.^#)