Boa tarde! estou estudando Java e me surgiu uma dúvida, por que não consigo utilizar o operador ternário dentro de um método caso eu precise comparar um parâmetro recebido, por exemplo:
public void openAccount(String type) {
this.setStatus(true);
this.setType(type);
(type == "cc") ? this.deposit(50.0) : this.deposit(150.0);
}
me retorna o erro “The left-hand side of an assignment must be a variable” mas caso eu use um if comum ele funciona normalmente, isso me deixa confuso.
Porque, como diz a mensagem de erro de erro, é necessário uma variável do lado esquerdo da atribuição. Teria que ser algo assim:
float variavel = (type == "cc") ? this.deposit(50.0) : this.deposit(150.0);
Obviamente, deposit() precisaria retornar o tipo da variável (float, nesse caso).
Se você está tentando usar o operador ternário como if para decidir como chamar o método, não vai funcionar, pois não é pra isso que ele serve. Mas você pode usá-lo no parâmetro do método:
this.deposit(type.equals("cc") ? 50.0 : 150.0);
Abraço.
1 curtida
Entendi, Obrigado pela ajuda!