Anotações de tipo em Java

Anotações de tipo em Java

Com a introdução do Java 8, a versão introduziu dois novos recursos chamados anotações repetidas e anotações de tipo. Até agora, se você quisesse usar anotações em Java, só poderia fazê-lo nas declarações. Com o Java 8, agora você pode adicionar anotações a qualquer tipo de uso. Onde quer que você esteja usando um tipo (inclui tipos em declarações, genéricos e conversões), você pode acompanhá-lo com uma anotação.

Sintaxe de anotação de tipo

Java 8 pode declarar anotações de tipo em qualquer tipo de uso. Um exemplo é o trecho abaixo:

@Encrypted String dados; Listar strings <@NonNull String>; meuGráfico = ( @Gráfico Imutável ) tmpGraph; Você pode simplesmente introduzir uma nova anotação de tipo. O processo é semelhante à definição de uma anotação com o destino ElementType.TYPE_PARAMETER, ElementType.TYPE_USE ou ambos os destinos: @Target ( { ElementType.TYPE_PARAMETER, ElementType.TYPE_USE } ) public @interface Encrypted { }

O destino ElementType.TYPE_PARAMETER significa que você pode escrever a anotação na declaração de uma variável de tipo (por exemplo, classe MyClass {….}). O Element.Type.TYPE_USE significa que você pode escrever a anotação em qualquer tipo de uso (ou seja, tipos em declarações, genéricos e conversões).

Você pode salvar anotações em arquivos de classe, mas isso não afeta ou influencia a execução do programa. Como exemplo, você pode declarar duas variáveis ​​File e uma conexão conforme mostrado no código abaixo:

Arquivo arquivo = ….; @Encryted Arquivo criptografado = …; @Open Connection connection = …; Enquanto você estiver executando o programa, o resultado será o mesmo se você passar qualquer um dos dois arquivos para o método send() da conexão. conexão.enviar(arquivo); connection.send(encryptedFile);

 

Alguns exemplos de anotações de tipo

@nonNull Lista List <@NonNull String> str Arrays <@NonNegative Integer> sort @Encypted File file @Open Connection connection void divideInteger (int a, int b) lança @ZeroDivisior ArithmeticException

 

Deixe um comentário

Este site usa o Akismet para reduzir o spam. Saiba como seus dados de comentário são processados.