Operador ternário dentro de um método

2 respostas Resolvido
java
W

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.

2 Respostas

T
Solucao aceita

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.

W

Entendi, Obrigado pela ajuda!

Criado 5 de agosto de 2021
Ultima resposta 5 de ago. de 2021
Respostas 2
Participantes 2