Alimentar um list que esta no main a partir de outra classe

olá pessoal, preciso de uma ajuda,

preciso alimentar o List acimaDaMedia = new ArrayList<>(); que está no main; porém o metodo está em outra classe e não estou conseguindo adicionar os valores com acimaDaMedia.add();

Alguma sugestão de como resolver?

Vc pode fazer o método da outra classe retornar os itens para a classe onde está o main, e depois usar o addAll da lista.

1 curtida

Para acessar o metodo que está no main de outra classe voce tem que deixá-lo publico e estático ou criar um get/set para ele.

Fiz 2 classes pra você ver um exemplo baseado no seu enunciado:

TESTES:

package amain;

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


public class Testes {

     // Array que voce quer alimentar
	public static List<Integer> acimaDaMedia = new ArrayList<>();


	// seu metodo main
	public static void main(String[] args) {

		// MANEIRA 1 DE FAZER
		// Chamar um método que retorna uma lista e alimentar o array
		ArrayList<Integer> listadaoutraclasse = Outraclasse.alimentadorDeArray1();
		acimaDaMedia.addAll(listadaoutraclasse);


		// MANEIRA 2 DE FAZER
		// Chamar um metodo que preenche o array diretamente da outra classe por uma chamada estatica
		Outraclasse.alimentadorDeArray2();



		// Imprimindo o retorno
		acimaDaMedia.forEach(valor -> System.out.println("Media preenchida na outra classe : " + valor));

	}

}

OUTRA CLASSE:

package amain;

import java.util.ArrayList;


public class Outraclasse {

	public static ArrayList<Integer> alimentadorDeArray1() {

		// Preenchendo um array de valores para usar como exemplo
		ArrayList<Integer> acimadamedia = new ArrayList<Integer>();
		acimadamedia.add(100);
		acimadamedia.add(20);
		acimadamedia.add(80);
		acimadamedia.add(10);
		return acimadamedia;
	}


	// Ao invés de retornar uma lista você ja pode chamar seu array e popular diretamente desta classe se ele for publico e estático
	public static void alimentadorDeArray2() {

		// Preenchendo um array de valores para usar como exemplo atraves de uma chamada estática
		Testes.acimaDaMedia.add(100);
		Testes.acimaDaMedia.add(20);
		Testes.acimaDaMedia.add(80);
		Testes.acimaDaMedia.add(10);

	}



}
1 curtida