Criar uma lista, duvida numa alínea

6 respostas
java
Ana_Xavier

Olá boa tarde :slight_smile:

Eu não entendi uma linha deste código, linha 8 (o que está a negrito) :

import java.util.*;

public class MyCoffee implements Coffee {

public static void main(String[] args) {

List x = new ArrayList();

x.add(3);

x.add(7);

x.add(5);

<strong>List y = new MyCoffee().fazAlgo(x);</strong>

y.add(1);

System.out.println(x);

}

public List fazAlgo(List z) {

z.add(9);

return z;

}

}

interface Coffee {

List fazAlgo(List s);

}

O que é que faz? Não percebi :confused:

Obrigada :slight_smile:

6 Respostas

darlan_machado

Você precisa verificar o que o método estático fazAlgo, da classe MyCoffee faz.
provavelmente ele retorna uma implementação de List (ArrayList ou LinkedList ou qualquer outra).
Mas, basicamente, funciona da mesma maneira que

List y = new ArrayList();

Com a diferença que você pode ter, como retorno do método, uma lista que já contenha itens.

Mike

A classe MyCoffee tem um método fazAlgo, esse método retorna uma lista

public List fazAlgo(List z) {
    z.add(9);
    return z;
}

Seria a mesma coisa que:

List x = new ArrayList();
x.add(3);
x.add(7);
x.add(5);
x.add("9");
List y = x;

Ou seja, você esta apenas falando que a list y é igual a lista retornada pelo fazAlgo;

Ana_Xavier

Muito obrigada :slight_smile:

Ana_Xavier

Muito obrigada :slight_smile:
Mas nós só sabemos que
List y = new ArrayList();

Porque o metodo fazAlgo retorna uma lista certo??

Ana_Xavier

So mais uma coisinha:

Mas nós só sabemos que
List y = new ArrayList();

Porque o metodo fazAlgo retorna uma lista certo??

darlan_machado

Na verdade, não.
A interface List, do pacote java.util possui duas implementações padrão: ArrayList e LinkedList.
E isso deve ser do te conhecimento (se não for, agora é).
Sabemos, sim, que

List y = new MyCoffee().fazAlgo(x);

Ou seja, independente do que o método fazAlgo faça, ele devolve um objeto compatível com List.

Criado 17 de abril de 2018
Ultima resposta 17 de abr. de 2018
Respostas 6
Participantes 3