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

Método Stream na Lista

Ola, esse método Stream da Lista, porq utilizamos Aula::getTempo se o nome do método é getTempoTotal?

Colocando apenas metade do nome, funciona também?

public int getTempoTotal(){ return this.aulas.stream().mapToInt(Aula::getTempo).sum(); }

Obrigado.

1 resposta
solução!

Oi Allan, tudo bem?

O nome do método realmente é getTempoTotal, mas repare que dentro dele estamos chamando o método getTempo presente na classe Aula:

public class Aula implements Comparable<Aula> {

    private String titulo;
    private int tempo;

    //Código omitido

    public int getTempo() {
        return tempo;
    }

    //Código Omitido
}

Portanto o getTempo que está sendo usado é um método diferente. Inclusive, se voltarmos para a versão anterior do método getTempoTotal, podemos ver que aqui o getTempo também é usado internamente ao ser chamado pela aula a cada execução do laço:

public int getTempoTotal() {
    int tempoTotal = 0;
    for (Aula aula : aulas) {
        tempoTotal += aula.getTempo();
    }
    return tempoTotal;
}

Se tratando de Java, é sempre bom desconfiar quando algo parece estar te dando muita liberdade.

Qualquer coisa estou aqui!

Bons estudos!!