Red de conocimiento informático - Problemas con los teléfonos móviles - ¿Existe alguna diferencia entre TextUtils.isEmpty(str) y str.isEmpty()? ¿Cuál es mejor? Por favor escriba el motivo

¿Existe alguna diferencia entre TextUtils.isEmpty(str) y str.isEmpty()? ¿Cuál es mejor? Por favor escriba el motivo

En lo que respecta a los resultados, hay una diferencia, es decir, cuando str es nulo o una cadena vacía (""), TextUtils.isEmpty(str) devuelve verdadero; de lo contrario, devuelve falso. Sin embargo, cuando es nulo, str.isEmpty() generará una excepción de puntero nulo.

En términos de eficiencia, str.isEmpty() es más rápido que TextUtils.isEmpty(), porque si miras el código fuente oficial, puedes encontrar que TextUtils.isEmpty() juzga en dos pasos, primero == nulo, entonces. longitud == 0. El primero es sólo un juez. longitud == 0.

Estructuralmente hablando, TextUtils.isEmpty(str) es un método estático y str.isEmpty() es un método propiedad de objetos de la clase String.