Operador ternário dentro de um método

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!