una ternario ternaria operador linea hacer formas estructura ejemplos condicional busqueda java methods boolean return ternary

ternaria - operador ternario null java



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

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 compilació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 declaración.

    "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 declaración 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.

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);


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 compilar el siguiente código snipet:

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

logras el siguiente error de compilación:

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


No, no puedes. ¿Pero cuál es el punto de esto sobre una declaración 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 objetivo 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.