Spring 中 @interface 中的默认 {}
default {} in @interface in Spring
刚看了Spring-web-4.2.4的一些源码,发现ControllerAdvice
(注解)很有意思:
@Target(ElementType.TYPE)
@Retention(RetentionPolicy.RUNTIME)
@Documented
@Component
public @interface ControllerAdvice {
@AliasFor("basePackages")
String[] value() default {};
@AliasFor("value")
String[] basePackages() default {};
//......
}
我不认为 default {}
是 Java 8 的新功能?
在Java中@interface
是一种定义annotations
的保留字(关键字)。所以你可以确定你上面列出的 class 是一个注解定义。在此 classes default
关键字中可用于定义注释属性的默认值。此功能是在语言中引入注释的同时引入的。
注释中使用default
关键字为相应的注释类型设置默认值(反过来,它允许您不必在每次编写注释时都指定此类型的值);
{}
只是一个数组文字,意思是 一个空数组 。
刚看了Spring-web-4.2.4的一些源码,发现ControllerAdvice
(注解)很有意思:
@Target(ElementType.TYPE)
@Retention(RetentionPolicy.RUNTIME)
@Documented
@Component
public @interface ControllerAdvice {
@AliasFor("basePackages")
String[] value() default {};
@AliasFor("value")
String[] basePackages() default {};
//......
}
我不认为 default {}
是 Java 8 的新功能?
在Java中@interface
是一种定义annotations
的保留字(关键字)。所以你可以确定你上面列出的 class 是一个注解定义。在此 classes default
关键字中可用于定义注释属性的默认值。此功能是在语言中引入注释的同时引入的。
注释中使用
default
关键字为相应的注释类型设置默认值(反过来,它允许您不必在每次编写注释时都指定此类型的值);{}
只是一个数组文字,意思是 一个空数组 。