Solucionado (ver solução)
Solucionado
(ver solução)
2
respostas

[Newbie Corner] [Implementação] Dúvida de escopo

Criei duas classes, para não manter a minha implementação no método "main". Então fiz o seguinte código:

import java.util.ArrayList;
import java.util.Collections;
import java.util.List;

public class OrdenaStrings {
    public List<String> OrdenaStringOrdemAlfabetica(){
        List<String> palavras = new ArrayList<String>();

        palavras.add("testI");
        palavras.add("testA");
        palavras.add("testE");

        Collections.sort(palavras);
        System.out.println(palavras);

        return palavras;
    }
}

public class Main {
    public static void main(String[] args) {
        OrdenaStrings ordenaStrings = new OrdenaStrings();
        ordenaStrings.OrdenaStringOrdemAlfabetica();
        System.out.println(ordenaStrings);
    }
}

O output(print) da classe "OrdenaStrings" imprime a lista. O output da classe "Main" não; ao invés disso, imprime uma referência de memória.

Output o acessar Quero acessar a lista que criei no método "OrdenaStringOrdemAlfabetica()" através da minha classe "Main". Como faço isso?

2 respostas
solução!

Olá Karina, tudo bem?

Para acessar a lista que você criou no método "OrdenaStringOrdemAlfabetica()" através da sua classe "Main", você pode utilizar o retorno do método.

Na sua classe "Main", você pode criar uma variável do tipo List e atribuir a ela o retorno do método "OrdenaStringOrdemAlfabetica()" da classe "OrdenaStrings". Dessa forma, você terá acesso à lista criada no método.

Veja como ficaria o código da sua classe "Main":

public class Main {
    public static void main(String[] args) {
        OrdenaStrings ordenaStrings = new OrdenaStrings();
        List<String> listaOrdenada = ordenaStrings.OrdenaStringOrdemAlfabetica();
        System.out.println(listaOrdenada);
    }
}

Desse modo, estamos guardando dentro de uma variável o retorno do método. Quando é passado o objeto ordenaStrings para o método System.out.println(), ele imprime o endereço pois não se trata de uma lista, mas sim do objeto. A lista é obtida apenas como retorno do método OrdenaStringOrdemAlfabetica(), da classe OrdenaStrings.

Espero ter ajudado e bons estudos!

Ajudou sim. Obrigada.