Il est normal de combiner des valeurs nulles avec l'opérateur `+` de Java (il ne baisse pas avec nullpo)

Il y a des moments où je veux afficher une variable String dans le journal en la combinant avec une chaîne à l'aide de l'opérateur +, mais je me demande souvent, "Quoi? Cette variable est-elle nulle d'accord?" Je vais. Si vous plantez avec Nurpo pour la sortie du journal, il sera annulé.

En conclusion, il n'y a pas de problème! !! est.

Il est normal de combiner null avec l'opérateur +

String n = null;
System.out.println("fuga:" + n); 
// fuga:Sortie comme nulle

Vous pouvez utiliser null pour le format

Vous pouvez utiliser String.format

String n = null;
System.out.println(String.format("hoge:%s",n)); 
// hoge:Affiché comme nul
System.out.println(String.format("fuga:%02d", n));
// fuga:Affiché comme nul

Il est normal de combiner des instances de la classe avec l'opérateur +

import java.util.ArrayList;
public class Main {
    public static void main(String[] argv) {
        //Votre propre classe est également bien
        MyClass myClass = new MyClass();
        System.out.println("hoge:" + myClass);
        // hoge:MyClass@S'affiche comme 60e53b93(@Après ça ça change)

        //La classe intégrée est également correcte
        ArrayList<Object> arrayList = new ArrayList<>();
        System.out.println("fuga:" + arrayList);
        // fuga:[]S'affiche comme(Je vois je vois)

        //La classe intégrée est également un travail de filière
        Object object = new Object();
        System.out.println("piyo:" + object);
        // piyo:java.lang.Object@5e2de80c(@Après ça ça change)
    }
}
class MyClass {
}

Soyez un peu prudent lorsque vous utilisez des instances de classe au format!

Comme nous l'avons vu jusqu'à présent, à l'exception de l'opérateur fomat % s, s'il s'agit d'une instance d'une classe qui ne peut pas être convertie, une exception sera lancée et elle tombera.

public class Main {
    public static void main(String[] argv) {
        MyClass myClass = new MyClass();
        System.out.println(String.format("hoge:%s",myClass));
        // hoge:MyClass@S'affiche comme 78308db1(@Après ça ça change)

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

Résumé

Il s'agissait d'une vérification basée sur le comportement Java8, mais ce n'était pas grave si elle était combinée avec l'opérateur +. Je me demande si les professeurs de Java vont commenter Vespra.

Recommended Posts

Il est normal de combiner des valeurs nulles avec l'opérateur `+` de Java (il ne baisse pas avec nullpo)
Choses à vérifier lorsque vous ne travaillez pas avec proguard