Repeatable 註解無效的問題
阿新 • • 發佈:2018-12-10
網上很多部落格只說了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需要注意的小知識點啦 (#^.^#)