Класс Scala и класс case == сравнение

Аннотации @FunctionalInterface служат для двух целей. Что касается компилятора и ошибки, которую он должен сгенерировать, было бы достаточно, чтобы иметь SOURCE RetentionPolicy, поскольку в этом отношении он влияет только на сам класс, аннотированный с помощью @FunctionalInterface.

Однако это имеет вторую цель, документируя тот факт, что использование этого interface в качестве функционального интерфейса действительно предназначено и возможность использовать его таким образом, а не просто совпадение, например, с, например, Comparable, который не предназначен для использования таким образом.

Поэтому он аннотируется с @Documented и имеет максимальную RetentionPolicy для выполнения второй цели.

33
задан wheaties 27 July 2016 в 13:16
поделиться