Es ist in Ordnung, Nullen mit Javas `+` Operator zu kombinieren (er fällt nicht mit nullpo ab).

Es gibt Zeiten, in denen ich eine String-Variable im Protokoll anzeigen möchte, indem ich sie mit einem String mit dem Operator "+" kombiniere, aber ich denke oft "das? Ist diese Variable null in Ordnung?" Ich werde. Wenn Sie mit Nurpo für die Protokollausgabe abstürzen, wird es umgestürzt.

Zusammenfassend gibt es kein Problem! !! ist.

Es ist in Ordnung, null mit dem Operator + zu kombinieren

String n = null;
System.out.println("fuga:" + n); 
// fuga:Ausgabe als null

Es ist in Ordnung, null für das Format zu verwenden

Es ist in Ordnung, String.format zu verwenden

String n = null;
System.out.println(String.format("hoge:%s",n)); 
// hoge:Wird als null angezeigt
System.out.println(String.format("fuga:%02d", n));
// fuga:Wird als null angezeigt

Es ist in Ordnung, Instanzen der Klasse mit dem Operator + zu kombinieren

import java.util.ArrayList;
public class Main {
    public static void main(String[] argv) {
        //Deine eigene Klasse ist auch in Ordnung
        MyClass myClass = new MyClass();
        System.out.println("hoge:" + myClass);
        // hoge:MyClass@Wird als 60e53b93 angezeigt(@Danach ändert es sich)

        //Eingebaute Klasse ist auch in Ordnung
        ArrayList<Object> arrayList = new ArrayList<>();
        System.out.println("fuga:" + arrayList);
        // fuga:[]Angezeigt als(Ich sehe ich sehe)

        //Eingebaute Klasse ist auch ein Würfeljob
        Object object = new Object();
        System.out.println("piyo:" + object);
        // piyo:java.lang.Object@5e2de80c(@Danach ändert es sich)
    }
}
class MyClass {
}

Seien Sie vorsichtig, wenn Sie Klasseninstanzen im Format verwenden!

Wie wir bisher gesehen haben, wird mit Ausnahme des Fomat-Operators "% s" eine Ausnahme ausgelöst und fällt, wenn es sich um eine Instanz einer Klasse handelt, die nicht konvertiert werden kann.

public class Main {
    public static void main(String[] argv) {
        MyClass myClass = new MyClass();
        System.out.println(String.format("hoge:%s",myClass));
        // hoge:MyClass@Wird als 78308db1 angezeigt(@Danach ändert es sich)

        System.out.println(String.format("hoge:%d",myClass));
        // java.util.Fallen Sie mit IllegalFormatConversionException
    }
}
class MyClass {
}

Zusammenfassung

Es war eine verhaltensbasierte Java8-Überprüfung, aber es war in Ordnung, wenn sie mit dem Operator + kombiniert wurde. Ich frage mich, ob Java-Lehrer Vespra kommentieren werden.

Recommended Posts

Es ist in Ordnung, Nullen mit Javas `+` Operator zu kombinieren (er fällt nicht mit nullpo ab).
Dinge zu überprüfen, wenn Sie nicht mit Proguard arbeiten