Conteúdo
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
0 Comentários