Я не прикасался к Java с тех пор, как в конце 90-х годов в университете использовал JBuilder, поэтому я немного не в курсе - во всяком случае, на этой неделе я работал над небольшим Java-проектом и использовал Intellij IDEA в качестве своей IDE , для изменения темпа от моей обычной разработки .Net.
Я заметил, что он поддерживает добавление интерфейсов и @interfaces, что такое @interface и чем он отличается от обычного интерфейса?
public interface Test {
}
против
public @interface Test {
}
Я провел небольшой поиск, но не смог найти много полезной информации, относящейся к @interface.
источник
интерфейс:
В целом, интерфейс предоставляет контракт без предоставления основных деталей реализации. В объектно-ориентированном программировании интерфейсы определяют абстрактные типы, которые демонстрируют поведение, но не содержат логику. Реализация определяется классом или типом, который реализует интерфейс.
@interface: (тип аннотации)
Возьмите приведенный ниже пример, который имеет много комментариев:
Вместо этого вы можете объявить тип аннотации
который может затем аннотировать класс следующим образом:
PS: Многие аннотации заменяют комментарии в коде.
Ссылка: http://docs.oracle.com/javase/tutorial/java/annotations/declaring.html
источник
interface
Ключевое слово указывает на то, что вы объявляете традиционный класс интерфейса в Java.@interface
Ключевое слово используется для объявления нового типа аннотаций.См. Учебник docs.oracle по аннотациям для описания синтаксиса.
Посмотрите JLS, если вы действительно хотите вникнуть в детали того, что
@interface
значит.источник
interface:
определяет контракт для класса, который его реализует@interface:
определяет контракт для аннотацииисточник
Интерфейс в языке программирования Java - это абстрактный тип, который используется для определения поведения, которое должны реализовывать классы. Они похожи на протоколы. Интерфейсы объявляются с использованием ключевого слова interface
@interface используется для создания ваших собственных (пользовательских) аннотаций Java. Аннотации определяются в своем собственном файле, как класс или интерфейс Java. Вот пользовательский пример аннотации Java:
В этом примере определяется аннотация MyAnnotation, которая имеет четыре элемента. Обратите внимание на ключевое слово @interface. Это сигнализирует компилятору Java, что это определение аннотации Java.
Обратите внимание, что каждый элемент определяется аналогично определению метода в интерфейсе. У него есть тип данных и имя. Вы можете использовать все примитивные типы данных в качестве типов данных элемента. Вы также можете использовать массивы в качестве типа данных. Вы не можете использовать сложные объекты в качестве типа данных.
Чтобы использовать вышеупомянутую аннотацию, вы можете использовать код, подобный следующему:
Ссылка - http://tutorials.jenkov.com/java/annotations.html
источник