@ Interfaz – ¿Qué?

Sé qué interfaces son, pero no sé lo suficiente acerca de java para saber cómo buscar mi respuesta. Entonces, ¿qué significa esto y qué hacer:

public @interface ThreadSafe { } // different file @ThreadSafe public class Model { 

¿Qué significa esta línea / hacer "@interface"? ¿Qué significa / hacer cuando se aplica anteriormente "@ ThreadSafe"

Esto se llama una anotación. Es posible que desee ver el tutorial de Java. Tiene bastante buena explicación de lo que son y cómo se utilizan.

http://download.oracle.com/javase/tutorial/java/javaOO/annotations.html

Muchas anotaciones reemplazan los comentarios en el código.

Supongamos que un grupo de software tradicionalmente comienza el cuerpo de cada clase con comentarios que proporcionan información importante:

 public class Generation3List extends Generation2List { // Author: John Doe // Date: 3/17/2002 // Current revision: 6 // Last modified: 4/12/2004 // By: Jane Doe // Reviewers: Alice, Bill, Cindy // class code goes here } 

Para agregar estos mismos metadatos con una anotación, primero debe definir el tipo de anotación. La sintaxis para hacer esto es:

 @interface ClassPreamble { String author(); String date(); int currentRevision() default 1; String lastModified() default "N/A"; String lastModifiedBy() default "N/A"; // Note use of array String[] reviewers(); } 

La definición de tipo de anotación es similar a una definición de interfaz en la que la interfaz de palabras clave está precedida por el signo at (@) (@ = AT, como en el tipo de anotación). Los tipos de anotación son una forma de interfaz, que se tratará en una lección posterior. Por el momento, no es necesario entender las interfaces.

El cuerpo de la definición de anotación anterior contiene declaraciones de elementos de tipo de anotación, que se parecen mucho a los métodos. Tenga en cuenta que pueden definir valores opcionales por defecto.

Una vez definido el tipo de anotación, puede utilizar anotaciones de ese tipo, con los valores rellenados, de la siguiente manera:

 @ClassPreamble ( author = "John Doe", date = "3/17/2002", currentRevision = 6, lastModified = "4/12/2004", lastModifiedBy = "Jane Doe", // Note array notation reviewers = {"Alice", "Bob", "Cindy"} ) public class Generation3List extends Generation2List { // class code goes here } 

Fuente: https://docs.oracle.com/javase/tutorial/java/annotations/declaring.html

Es como un descriptor XML incorporado a la propia clase, pero oculta las cosas complejas. Usted acaba de decir que quiere que esta clase sea threadsafe, y voilla. Toda la configuración en esa sola línea con el signo @.

  • Solicitud POST con Android Annotation REST Service
  • No obtener fuentes procesadas (generadas) de anotación compiladas en apk, usando maven
  • Android Studio siempre excluye la carpeta de compilación / fuente
  • Uso de AndroidAnnotations con Scala y Gradle
  • Problema con ProGuard y RoboGuice con anotaciones de @Inject
  • ¿Cómo utilizar las anotaciones de Java para guiar Proguard de Android?
  • Anotación Android para llamar a una función específica
  • TargetApi no se tiene en cuenta
  • Cómo utilizar la anotación @Contract
  • ¿Cómo Lombok genera código en la clase existente?
  • @Background y la rotación de la pantalla cuando se utiliza AndroidAnnotations, ¿cómo asegurarse de que las devoluciones de llamada se reciben?
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.