De waarde van een "Bestand" -parameter wijzigen zonder een nieuw exemplaar van een klasse te maken

Ik heb hier een klein probleempje.

Ik verklaar een nieuw object "Fleet" in deze methoden:

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);

}

De laatste regel roept de methode userMenu() aan. In deze methode moet ik de waarde van "Bestand" in Fleet kunnen wijzigen zonder een nieuw exemplaar van de klasse te maken.

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;
    }
}

Ook mag ik geen nieuwe gegevens op class-niveau maken. Suggesties?

0

2 antwoord

Hoe zit het met een setter in uw Fleet -klasse voor het bestand:

public class Fleet {
   private File file;
   ...

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

Vervolgens kunt u deze methode gebruiken om het bestand in uw vlootokkenobject te wijzigen door te bellen

fleet.setFile( myNewFile );
1
toegevoegd

opgelost:

Ik ben veranderd:

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

naar:

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