Java: Ternario sin retorno. (Para llamadas de método)

Me preguntaba si era posible hacer una operación ternaria pero sin devolver nada.

Si no es posible en Java, ¿es posible en otros idiomas, de ser así, cuáles se aplican?

name.isChecked() ? name.setChecked(true):name.setChecked(false); 

    No, no puedes. ¿Pero cuál es el punto de esto sobre una statement if-else ? ¿Estás realmente tratando de guardar 7 personajes?

     if (name.isChecked()) { name.setChecked(true); } else { name.setChecked(false); } 

    o si prefieres mal estilo:

     if (name.isChecked()) name.setChecked(true); else name.setChecked(false); 

    No importa el hecho de que solo puede hacer (en este caso):

     name.setChecked(name.isChecked()); 

    El objective del operador ternario o “condicional” es introducir condicionales en una expresión . En otras palabras, esto:

     int max = a > b ? a : b; 

    pretende ser una abreviatura de esto:

     int max; if ( a > b ) { max = a; } else { max = b; } 

    Si no se produce ningún valor, el operador condicional no es un atajo.

    Me preguntaba si era posible hacer una operación ternaria pero sin devolver nada.

    No, no es posible:

    1. El segundo y tercer operandos deben ser expresiones no nulas; es decir, deben producir algún valor real.

      “Es un error en tiempo de comstackción para la segunda o la tercera expresión de operando ser una invocación de un método de vacío”. – JLS 15.25 .

    2. Una expresión ternaria es una expresión y no se puede usar como una statement.

      “Ciertos tipos de expresiones se pueden usar como declaraciones siguiéndolas con punto y coma”. … y la expresión ternaria no es una de esas clases – JLS 14.8 .

    Si realmente quieres usar una expresión ternaria pero no usar el valor de la expresión, lo más simple es asignar el valor a una variable ficticia y agregar una anotación para suprimir la advertencia sobre la variable que no se está utilizando.

    Pero una mejor idea es usar una statement simple if .

    Si no es posible en Java, ¿es posible en otros idiomas, de ser así, cuáles se aplican?

    Estoy un poco oxidado, pero creo que C, C ++ y Perl permiten que se usen expresiones arbitrarias en lugares donde no se usan sus valores.

    A veces, puede usar la operación ternaria en los argumentos del método para resolver su solicitud.

     name.setChecked(name.isChecked() ? true : false); 

    por cierto, la mejor solución para su peoblem es

     name.setCecked(name:isChecked()); 

    Debe devolver algún valor y no funcionará si desea que actúe como un método nulo que realiza alguna acción sin devolver un valor.

    Espero que esto ayude…

    En java siguiente código no es posible:

     (your-condition) ? (true-statements) : (false-statements) 

    para la muestra no puede comstackr el siguiente código snipet:

     (1==1) ? System.out.println("") : System.out.println(""); 

    logras el siguiente error de comstackción:

     The left-hand side of an assignment must be a variable