SóProvas


ID
2620549
Banca
CS-UFG
Órgão
SANEAGO - GO
Ano
2018
Provas
Disciplina
Programação
Assuntos

Considere a sentença a seguir.

for(I i: new I[] {x-> x+2, (x)->x*2 })
System.out.println(i.c(2));

Dada a interface I, interface I{int c(int i);}, essa sentença

Alternativas
Comentários
  • Preciso de ajuda para entender esse código

  • Nunca na vida vi um código igual esse.

  • Ele tá usando o lambda do Java 8 com classe anônima.

    Reescrevendo o código de forma extensa:

    -------------------------------------------------------------------------------

    // primeira classe anônima 

    I i1 = new I() {

          public int c(int x) {

                return x+2;

          }

    };

    // segunda classe anônima

    I i2 = new I() {

          public int c(int x) {

                return x*2;

          }

    };

    // adiciona os objetos num array e percorre no for

    I[] list = {i1, i2};

    for (I i : list) {

          System.out.println(i.c(2));

    }