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.

java-programación-para-android-developers-2e-getpaystring
El método getPayString no anula método getPayString de la clase padre.

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", el saludo 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, el saludo 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.

Artículos Relacionados