Acerca de redacción de normalización de igual a igual tipo cadena

Escribir es igual hoy en día, de repente me encontré con un error de puntero nulo, ahora el escenario para restaurarlo.

En ese momento el valor de la comparación para determinar si las propiedades de un objeto igual a "1"

(Object.get (valor)). Equals ( "1")

Después de la operación de escribir, los paquetes de código que se encuentra de repente excepción de puntero nulo, reacciona inmediatamente este objeto no es nulo, el método llama al puntero de ruta de cadena nula; así que quería determinación trinocular inmediatamente precedido.

((Object.get (valor)) == null? “” :( Object.get (valor)). Equals ( "1")

Terminado un vistazo al código, esto es demasiado estúpida, derecha y giro radical, se dio cuenta de que la escritura no está en la línea, y finalmente cambiado

"1" .equals (Object.get (valor))

Este método evita el éxito de la llamada iguales nula, pero por otra parte pensé, qué tipo de situación es igual en el interior nula pase va a pasar, y ningún sistema de prueba de código de más éxito, representaría este método puede pasar parámetros nula y no afecta utilizando el código, por lo cual lado con código de fuente abierta para averiguar, la siguiente es la fuente de iguales.

public boolean equals(Object var1) {
        if (this == var1) {
            return true;
        } else {
            if (var1 instanceof String) {
                String var2 = (String)var1;
                int var3 = this.count;
                if (var3 == var2.count) {
                    char[] var4 = this.value;
                    char[] var5 = var2.value;
                    int var6 = this.offset;
                    int var7 = var2.offset;

                    do {
                        if (var3-- == 0) {
                            return true;
                        }
                    } while(var4[var6++] == var5[var7++]);

                    return false;
                }
            }

            return false;
        }
    }

Podemos ver que el primer número que llama == para comparar sí, entonces se pasa un nulo en, primero realizará nula == null.

nula == null, qué? Juego para el código de tanto tiempo, que nunca han jugado comparar esta situación, no puedo esperar para llevar a cabo el lado, se encontró nula == null y se volvió un verdadero, esto va a resolver las dudas que acababa de pasar un nulo.

Así, además de la nula nula ==, null hay algo característico de ella?

1.null no forma parte de ningún tipo, se puede convertir en cualquier tipo, pero con instanceof siempre devolverá falso.
2.null Nunca y ocho tipos de datos básicos como operador de asignación, el error del compilador o no, es correr un error.
Lata 3.null y operaciones de cadena. (tales como + null "S" = "NULLS")
4. mismo tipo de nulo, la comparación retorna verdaderos, null == retornos nulos cierto.

Bueno, después de leer nula y luego de vuelta al método es igual, se encontró con que la cadena se divide en char [] array, a continuación, un personaje de comparar, el tiempo de desplazamiento como una variable miembro se ha inicializado por el constructor ha dado un 0.

El principio es la forma en que será fácil de recordar cuándo llamar iguales, lo mejor es llamar a las constantes, las variables entre paréntesis.

Publicado 27 artículos originales · ganado elogios 1 · vistas 3655

Supongo que te gusta

Origin blog.csdn.net/qq_40111437/article/details/83185674
Recomendado
Clasificación