1
resposta

Tentar chamar um metodo inválido

O que aconteceria se no código eu colocasse:

[...]
int x = 3;
System.out.println(1 != 1  &&  metodo(x));

Qual seria o problema exatamente? Eu tentei rodar esse código, mas não entendi se o problema foi por que o x é int e o parametro do método metodo é String ou se o problema é outro.

1 resposta

Olá, Vitor.

Tudo bem?

Primeiramente, é importante entender que o operador && é um operador de curto-circuito. Isso significa que se a primeira condição for falsa, a segunda condição não será avaliada. No seu caso, a expressão 1 != 1 é falsa, então a expressão metodo(x) não será avaliada.

No entanto, você mencionou que o parâmetro do método metodo é do tipo String, enquanto você está passando um int. Isso realmente causaria um erro de compilação, mas como a expressão 1 != 1 é falsa, o compilador não tentará avaliar metodo(x), e você não verá esse erro em tempo de execução.

Para resumir:

  1. A expressão 1 != 1 é falsa.
  2. Devido ao operador de curto-circuito &&, a expressão metodo(x) não será avaliada.
  3. Se 1 != 1 fosse verdadeira, você veria um erro de compilação porque metodo esperaria um String e você está passando um int.

Espero ter ajudado e bons estudos!