2014-12-15 5 views
-1

im довольно новичок в Java и им сталкивается с проблемой с моим кодом. У меня есть класс, содержащий метод, который создает listarray на основе пользовательского ввода :Как получить доступ к методам, которые принимают массив как аргумент без аргумента? (Java)

public class manage{ 
public void adding() { 
    boolean loop = true; 
    ArrayList<Game> thegame = new ArrayList<Game>(); 
    while(loop) { 
     Scanner agame = new Scanner(System.in); 
     System.out.print("name: \n"); 
     String Cgame = agame.nextLine(); 
     Scanner qty = new Scanner(System.in); 
     System.out.print("the qty: \n"); 
     int CQty = qty.nextInt(); 


     Console wertgame = new Console(Cgame,Cqty); 
     thegame.add(new Game(Cgame,Cqty)); 

     System.out.println("continue?"); 
     Scanner autre = new Scanner(System.in); 
     int continu = other.nextInt(); 
     if(continu==1) { 

     } 
     else if(continu==2) { 
      Main.menu(); 
     } 
    } 

    return thegame; 
} 

А то у меня есть еще один метод в том же классе, что является для его отображения:

public void information(List<Game> thegame) { 
     System.out.print(thegame); 

    }} 

проблема им с здесь, является то, что мне нужно получить доступ к информации (Перечислите Thegame) метод , из другого класса (java-файл). Однако, как мне получить доступ к нему из моего другого класса, так как я не могу access (call), используя «manage.information()», так как ему нужен аргумент, но мой arraylist еще не создан еще в моем другом классе, он создается только в том случае, когда в классе управления. Поэтому я не могу передать аргументы при вызове. затем я получаю доступ к нему из другого класса?

спасибо

+0

Переместить 'Список thegame' из локальной переменной в поле класса. –

+0

И как? Спасибо –

+1

public class Manage {private ArrayList theGame = new ArrayList (); public void add() {... – zgc7009

ответ

0

Простой ответ заключается в том, что вы не можете.

Если вы хотите вызвать метод, требующий аргумента, вам необходимо передать этот аргумент в той или иной форме.

IMO, лучшим решением было бы просто не называть метод information в точке, где у вас нет требуемого аргумента. Единственная цель метода заключается в том, чтобы распечатать его аргумент, поэтому, если у вас нет объекта (списка) для печати, тогда вызов метода не может делать что-либо стоящее.

В качестве альтернативы вы можете передать null вместо списка, но это просто приведет к способу вывода "null", который кажется довольно бессмысленным.

Короче говоря, вы не можете передать аргумент, который не существует. Это просто не имеет смысла. Подумайте еще раз о том, что вы на самом деле пытаетесь сделать здесь.

Смежные вопросы