По умолчанию {} в @interface весной
Просто прочитайте некоторый исходный код из 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?
2 ответа
На яве @interface
какое-то зарезервированное слово (ключевое слово) для определения annotations
, Таким образом, вы можете быть уверены, что класс, который вы перечислили выше, является определением аннотации. В этом классе default
Ключевое слово может быть использовано для определения значения по умолчанию для свойств аннотации. Эта функция была введена одновременно с аннотациями на языке.
default
ключевое слово используется в аннотациях для установки значения по умолчанию для соответствующего типа аннотации (оно, в свою очередь, позволяет не указывать значение этого типа каждый раз, когда вы пишете аннотацию);{}
это просто литерал массива, который означает пустой массив.