@ 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"
- No se puede crear después de actualizar a Android Studio 2.3
- Android javax.annotation.processing Falta el paquete
- ¿Es posible generar una clase interna de una clase para compilar con un procesador de anotación?
- ¿Cómo serializar usando gson con @SerializedName anotación?
- Procesamiento de anotaciones multi-módulo en Android Studio
- ¿Cuáles son los usos correctos de @NonNull y @Nullable?
- Forma correcta de usar la anotación @NonNull en Android Studio
- ¿Cuál es el propósito de la anotación @param en código Java?
- Lint falla en la compilación con el error de seguridad "WrongConstant: Incorrect constant". Anotación de IntDef
- Dile a Proguard que mantenga la anotación en los métodos
- Soporte de Kotlin para @ColorInt Java Annotation
- Diferencia entre MainThread, UiThread, WorkerThread, BinderThread en Android Annotation
- Referencia no resuelta: Kotlin necesita 2 compilaciones después de limpiar para recoger código al usar kapt
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 @.