В чем разница между @Deprecated и @Deprecated ()? - PullRequest
0 голосов
/ 21 февраля 2020

наткнулся на это @Deprecated() сегодня. Любопытно знать, @Deprecated против @Deprecated(), но оба компилятора разрешают один и тот же интерфейс Deprecated.

Они оба разные или они одинаковые? Есть ли практика использовать один над другим?

Ответы [ 2 ]

3 голосов
/ 21 февраля 2020

Они оба означают одно и то же. @Deprecated это просто сокращение для @Deprecated(). См. §9.7.2. Примечания к маркеру из Java Спецификация языка :

A примечание к маркеру - это сокращение, предназначенное для использования с типами примечаний к маркеру (§9.6 .1).

MarkerAnnotation:
@ TypeName

Это сокращение от обычной аннотации:

@TypeName()

Допустимо использовать аннотации маркера для типов аннотаций с элементами, поэтому пока все элементы имеют значения по умолчанию (§9.6.2).

Пример 9.7.2-1. Аннотации маркеров

Ниже приведен пример использования типа аннотации маркера Preliminary из §9.6.1:

@Preliminary public class TimeTravel { ... }

Начиная с Java 8, аннотация @Deprecated не имела элементов, поэтому она могла быть только аннотацией маркера. Однако, начиная с Java 9, теперь он имеет два элемента: since и forRemoval. Но поскольку эти элементы имеют значения по умолчанию, аннотация все еще может использоваться как аннотация маркера.

0 голосов
/ 21 февраля 2020

Это не интерфейс, это аннотация . @Deprecated и @Deprecated() одинаковы

...