operador ternario para la validación nula BIGDECIMAL

Dekso:

¿Por qué recibo excepción de puntero nulo en este código?

    BigDecimal test = null;
    String data = "";
    try {
    System.out.println(test==null?"":test.toString());
    data = test==null?"":test.toString();
    System.out.println(data);
    data = data +  " " + test==null?"":test.toString(); // catching null pointer in this line
    } catch (Exception e) {
        // TODO: handle exception
        e.printStackTrace();
    }
Eran :

Se evaluación de las expresiones como:

data = (data +  " " + test==null)?"":test.toString();

así, ya que data + " " + testno es null, que intenta llamar test.toString()incluso cuando testes null.

Cambio

data = data +  " " + test==null?"":test.toString();

a

data = data +  " " + (test==null?"":test.toString());

Supongo que te gusta

Origin http://43.154.161.224:23101/article/api/json?id=221907&siteId=1
Recomendado
Clasificación