Изменение значения параметра «Файл» без создания нового экземпляра класса - PullRequest
0 голосов
/ 07 декабря 2011

У меня есть небольшая проблема здесь.

Я объявляю новый объект «Флот» в следующих методах:

public void run() throws FileNotFoundException
{
    File file = new File(getFile());
    Fleet fleet = new Fleet(file);
    buildFleet(file, fleet);
    }

private void buildFleet(File file, Fleet fleet) throws FileNotFoundException
{
    fleet.addVehicle(Honda);
    userMenu(fleet);

}

Последняя строка вызывает метод userMenu (). В этом методе мне нужно иметь возможность изменять значение «File» внутри Fleet, не создавая новый экземпляр класса.

private void userMenu(Fleet fleet) throws FileNotFoundException
{
    PrintWriter pw = new PrintWriter("temp.txt");
    File file = new File("temp.txt");
    fleet = new Fleet(file);

    this.createMenu();
    choice = this.menu.getChoice();


while(choice != 8)
{
    switch(choice)
    {
    case 1:
        //Do stuff
        fleet.addVehicle(Honda);
        break;
    }
}

Кроме того, мне не разрешено создавать какие-либо новые данные уровня класса. Есть предложения?

Ответы [ 2 ]

1 голос
/ 07 декабря 2011

А как насчет сеттера в вашем классе Fleet для файла:

public class Fleet {
   private File file;
   ...

   public void setFile( File file ){
     this.file = file;
   }
}

Затем вы можете вызвать этот метод для изменения файла внутри вашего объекта флота, вызвав

fleet.setFile( myNewFile );
0 голосов
/ 07 декабря 2011

Решено:

Я изменил:

private void userMenu() throws FileNotFoundException
{
    PrintWriter pw = new PrintWriter("temp.txt");
    File file = new File("temp.txt");

до:

private void userMenu(Fleet fleet) throws FileNotFoundException
{
    PrintWriter pw = new PrintWriter("temp.txt");
    File file = new File("temp.txt");
    fleet.file = file;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...