版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/baidu_31093133/article/details/82736250
网上很多博客只说了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需要注意的小知识点啦 (#^.^#)