Anotaciones java en su aplicación para android
En Java, los elementos que comienzan con un signo de arroba (@) son anotaciones. En el código siguiente, el @Anular
anotación de Java recuerda que el método inmediatamente por debajo de la anotación tiene el mismo nombre y los mismos tipos de parámetros como un método de la clase padre. El uso de la @Anular
anotación es opcional. Si se quita todo líneas @ Override
, el código funciona de la misma manera.
com.allyourcode.company- paquete
importación java.text.NumberFormat-
importación java.util.Locale-
FullTimeEmployee clase pública se extiende Empleado {
Video: Tutorial android 1:primer programa hola mundo para android
SALARIO doble pública
moneda NumberFormat estática = NumberFormat.getCurrencyInstance (Locale.US) -
FullTimeEmployee pública () {
}
FullTimeEmployee pública (String nombre, cadena jobTitle, salario doble) {
this.name = Nombre
this.jobTitle = jobTitle-
this.salary = SALARIO
}
pagar el doble pública () {
volver SALARIO
}
@Anular
Video: nueva BRUTAL aplicación para Android 2017 la mejor | New best app for Android
Cadena getPayString pública () {
Nombre + volver “” + currency.format (de pago ()) + “ n” -
}
}
¿Por qué utilizar la @Anular
¿anotación? Imagínese dejar fuera de la anotación y por error poner el siguiente getPayString
método (y ningún otro getPayString
declaración de método) en el código:
Cadena getPayString pública (doble salario) {
Nombre regresar + ", " + Currency.format (salario) + "norte"-
}
Se podría pensar que se ha redefinido de la clase padre método getPayString
, pero no lo ha hecho! los Empleado
la clase de getPayString
método no tiene parámetros, y su nuevo Empleado a tiempo completo
la clase de getPayString
método tiene un parámetro. Android Studio mira estas cosas en el editor y dice: “Bueno, supongo que el desarrollador está heredando la Empleado
sin parámetros de clase getPayString
método y declarando una versión adicional de getPayString
. Ambos getPayString
métodos están disponibles en el Empleado a tiempo completo
clase."
Todo va bien hasta que se ejecuta el código. La máquina virtual Java valora la declaración
textView.append (ftEmployee.getPayString ()) -
en la actividad principal y llama a la sin parámetros versión de getPayString
, que la Empleado a tiempo completo
clase hereda de su padre. Método de ese padre devuelve el inútil Pagar no se conoce
mensaje. En la pantalla del emulador, que se ve Ed, no pagan conocida
para el empleado a tiempo completo. Eso no es lo que desea.
El problema en este ejemplo hipotético no es tanto que usted comete un error de código - todo el mundo comete errores como éste. El problema es que, sin una anotación, no se captura el error hasta que se está ejecutando el programa. Es decir, que no se ve el mensaje de error tan pronto a medida que compone el código en el editor de Android Studio.
Esperar hasta que el tiempo de ejecución puede ser tan doloroso como diciendo, “Aha! Yo sé por qué este programa no se ha ejecutado correctamente “Pero esperar hasta que el tiempo de ejecución también puede ser muy dolorosa - tan doloroso como diciendo“. Mi aplicación fue una clasificación de 1 en una escala de 5 a causa de este error que no vi hasta que una el usuario llama mi mala getPayString
método."
Idealmente, Android Studio es consciente de su intención de sustituir un método existente, y puede quejarse a usted mientras usted está mirando el editor. Si se utiliza el @Anular
anotación en conjunto con el mal getPayString
método, los subrayados editor @Anular
en rojo. Cuando se pasa el ratón sobre la palabra @Anular
, ve este mensaje. Eso es bueno porque se puede solucionar el problema mucho antes de que el problema se presenta en una corrida de su código.
Cuando Android Studio crea una Encadenar
método, se pone otra anotación - la @NonNull
anotación - en la parte superior de la declaración de método. En Java, cualquier variable tipo de referencia que no apunta a nada tiene el valor nulo
. Tenga en cuenta los siguientes casos:
- Si se escribe
saludo String = "Hola"
, elsaludo
puntos variables a los personajes codegt; H, e, l, l, o. - Si se escribe
saludo String = ""
, el saludo puntos variables en una cadena que no contiene caracteres. No, la cadena no tiene personajes en él, pero eso sí, sigue siendo una cadena. Si se ejecuta
greeting.length ()
se obtiene el número 0.
- Si se escribe
saludo cadena = null
, elsaludo
variables no apunta a nada. En este caso, si se ejecuta
greeting.length ()
Video: Instala aplicaciones Java en un dispositivo Android
su aplicación se bloquea y se ven una Excepción de puntero nulo
en el panel Logcat de Android Studio.
los @NonNull
Estudio de anotación recuerda Android que el valor devuelto por el nuevo Encadenar
método no debe ser nulo
. Si Android Studio detecta que el método devuelve nulo
, que aparezca una pequeña mancha amarilla lo largo del borde más a la derecha del editor. Si se pasa sobre esa marca, se ve una `Nulo` es devuelto por el método
advertencia.