У меня возникла проблема с тем, что я не знаю, почему это происходит. В основном, я пытаюсь передать все элементы в списке в другой список в другом классе. Я попытался использовать переменные, метод get и даже метод addAll из класса List, и ничего не работает. Я получаю пустой список ...Проблема со списком
Вот где ошибка происходит:
public class ChecaOrtografia
{
// instance variables - replace the example below with your own
Dicionario dicionario = new Dicionario();
Gramatica gramatica = new Gramatica();
Frase frase = new Frase();
public List<String> listaFrases;
public List<Item> listaDicionario;
public List<String> listaGramatica;
/**
* Constructor for objects of class ChecaOrtografia
*/
public ChecaOrtografia()
{
listaFrases = new ArrayList<>();
this.listaFrases.addAll(frase.listaFrases);
listaDicionario = new ArrayList<>();
this.listaDicionario.addAll(dicionario.listaItens);
listaGramatica = new ArrayList<>();
this.listaGramatica.addAll(gramatica.listaRegras);
}
иметь в виду, что я пытался что-то вроде:
listaFrases = frase.listaFrases;
и
listaFrases = frase.getFrases();
Это часть моего основного класса:
public class corretorGramatical
{
public static void main(String [ ] args)
{
Dicionario dicionario = new Dicionario();
Gramatica gramatica = new Gramatica();
Frase frase = new Frase();
ChecaOrtografia checador;
List<String> saida = new ArrayList<>();
Item a;
String word, category, specification, frases;
int contador = 0;
char code;
Scanner entry = new Scanner(System.in);
loop:while (entry.hasNextLine()) {
code = entry.nextLine().charAt(0);
switch(code)
{
case 'd':
System.out.println ("Diga quantas words seu dicionario tera");
contador = entry.nextInt();
entry.nextLine();
for(int i = 0; i < contador; contador--)
{
System.out.println ("Qual é a palavra?");
word = entry.nextLine();
System.out.println ("Qual a categoria?");
category = entry.nextLine();
a = new Item (word, category);
dicionario.listaItens(a);
}
break;
case 'g':
System.out.println ("Quantas linhas serão utilizadas para especificar a gramática?");
contador = entry.nextInt();
entry.nextLine();
for(int j = 0; j < contador; contador--)
{
System.out.println ("Qual é a especificação?");
specification = entry.nextLine();
gramatica.listaRegras(specification);
}
break;
case 'f':
System.out.println ("Digite as frases que deseja checar");
entry.nextLine();
for(int f = 0; f < contador; contador--)
{
System.out.println ("Qual é a frase?");
frases = entry.nextLine();
frase.listaFrases(frases);
}
checador = new ChecaOrtografia();
saida = checador.checarOrtografia();
break;
case 's':
break loop;
}
}
Я не вижу в вашем коде, где вы заполняете список. – Dherik
Я не вижу, как это должно работать, поскольку нет другого экземпляра 'CeckaOrtografia'. Если вам нужно скопировать элементы между двумя экземплярами, вам нужно иметь два (например, «CheckaOrtografia other») для копирования или копирования. – Jack
Возможно, вам не хватает paraemter в вашем конструкторе с другим экземпляром 'CeckaOrtografia' – k0ner