Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

Chamar um método com varargs ou um método sem parâmetros

No minuto 8:45 do vídeo, o Guilherme fala que podemos receber zero argumentos nos varargs (caso só exista um parâmetro que espera varargs).

Mas e se caso exista um outro método que contenha o mesmo nome do método anterior? Vi que ele acaba invocando o método que não recebe nenhum parâmetro... mas porquê? Exemplo:

class Calculadora {
    public int soma(int... numeros) {
        int soma = 0;
        for(int i = 0; i < numeros.length; i++) {
            soma += numeros[i];
        }
        return soma;
    }
    public int soma() {
        return 50;
    }
}

public class TestaCalculadora {
    public static void main(String[] args) {
        Calculadora c = new Calculadora();
        System.out.println(c.soma());
    }
}
1 resposta
solução!

Oi Maycon

Nesse caso a invocação é pelo mais restritivo (que não recebe nenhum argumento). O varargs passa a ser chamado apenas se você passar 1 ou mais elementos.