Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

243
Visualizações
¿Se puede usar un tipo de anotación sin @Target en cualquier lugar?

Los tutoriales de Java dicen lo siguiente:

Si una metaanotación @Target no está presente en un tipo de anotación T , entonces una anotación de tipo T puede escribirse como un modificador para cualquier declaración excepto una declaración de parámetro de tipo.

https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/annotation/Target.html

Otros manuales dicen que si @Target no está presente, se puede usar una anotación en cualquier lugar excepto en los escenarios TYPE_USE o TYPE_PARAMETER.

No estoy muy seguro de qué significa "declaración de parámetros" en ese caso. Esta clase se compila y la anotación "@Everywhere" está presente realmente en todas partes, sin ninguna anotación @Target. Incluye operaciones de conversión, parámetros lambda y declaraciones genéricas.

 import java.util.ArrayList; import java.util.function.Predicate; @interface EveryWhere{} public @EveryWhere class AnnotedEveryWhere<@EveryWhere T> extends @EveryWhere Object{ @EveryWhere int i = 0; @EveryWhere <@EveryWhere T> String method(@EveryWhere ArrayList<@EveryWhere String> array) { @EveryWhere Predicate<@EveryWhere ArrayList<@EveryWhere String>> pred = (@EveryWhere ArrayList<@EveryWhere String> lambdaParameter)->{ @EveryWhere ArrayList<@EveryWhere String> insideLambda = new @EveryWhere ArrayList<@EveryWhere String>(); return (@EveryWhere boolean) true;}; return (@EveryWhere String) "String"; } }
over 4 years ago · Santiago Trujillo
1 Respostas
Responde à pergunta

0

Depende de la versión de Java. Java SE 18 dice

Si una meta-anotación @Target no está presente en una interfaz de anotación T, entonces se puede escribir una anotación de tipo T como un modificador para cualquier declaración.

Desafortunadamente, https://javaalmanac.io no hace diferencias al nivel de detalle necesario para saber en qué versión cambió.

over 4 years ago · Santiago Trujillo Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda