Eu não toquei em Java desde que usei o JBuilder no final dos anos 90, na Universidade, por isso estou um pouco desconectado - de qualquer forma, estive trabalhando em um pequeno projeto Java esta semana e usando o Intellij IDEA como meu IDE , para uma mudança de ritmo em relação ao meu desenvolvimento regular em .Net.
Percebo que ele tem suporte para adicionar interfaces e @interfaces, o que é uma @interface e como ela difere de uma interface normal?
public interface Test {
}
vs.
public @interface Test {
}
Pesquisei um pouco, mas não consegui encontrar muitas informações úteis referentes a @interface.
fonte
interface:
Em geral, uma interface expõe um contrato sem expor os detalhes subjacentes da implementação. Na Programação Orientada a Objetos, as interfaces definem tipos abstratos que expõem o comportamento, mas não contêm lógica. A implementação é definida pela classe ou tipo que implementa a interface.
@interface: (tipo de anotação)
Veja o exemplo abaixo, que tem muitos comentários:
Em vez disso, você pode declarar um tipo de anotação
que pode anotar uma classe da seguinte maneira:
PS: muitas anotações substituem comentários no código.
Referência: http://docs.oracle.com/javase/tutorial/java/annotations/declaring.html
fonte
A
interface
palavra-chave indica que você está declarando uma classe de interface tradicional em Java.A
@interface
palavra-chave é usada para declarar um novo tipo de anotação.Consulte o tutorial docs.oracle em anotações para obter uma descrição da sintaxe.
Consulte o JLS se você realmente quiser entrar em detalhes sobre o que
@interface
significa.fonte
interface:
define o contrato para uma classe que o implementa@interface:
define o contrato para uma anotaçãofonte
A interface na linguagem de programação Java é um tipo abstrato usado para especificar um comportamento que as classes devem implementar. Eles são semelhantes aos protocolos. As interfaces são declaradas usando a palavra-chave interface
@interface é usado para criar suas próprias anotações Java (personalizadas). As anotações são definidas em seu próprio arquivo, assim como uma classe ou interface Java. Aqui está um exemplo de anotação Java personalizado:
Este exemplo define uma anotação chamada MyAnnotation que possui quatro elementos. Observe a palavra-chave @interface. Isso sinaliza para o compilador Java que esta é uma definição de anotação Java.
Observe que cada elemento é definido de maneira semelhante a uma definição de método em uma interface. Tem um tipo de dados e um nome. Você pode usar todos os tipos de dados primitivos como tipos de dados do elemento. Você também pode usar matrizes como tipo de dados. Você não pode usar objetos complexos como tipo de dados.
Para usar a anotação acima, você pode usar um código como este:
Referência - http://tutorials.jenkov.com/java/annotations.html
fonte