Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

242
Vistas
¿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 Respuestas
Responde la pregunta

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 Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda