Input/Output Serialisieren/Deserialisieren

F

Flussdichte

Gast
Hallo zusammen,

Bin am Java-Basics lernen, und es ist interessant und macht Spass, hoffe das ich mir weitere Kenntnisse aneigne, um auch selber coden zukönnen.
Bei einem Buch das ich am durchlesen bin, gibt es eine Applikation die ich, so wie im Buch beschrieben, realisiert habe, also 1 zu 1. Leider habe ich ein Problem am Schluss.
In der Applikation kann man Autos(Objekte) eintragen, die in einer Liste(Array) festgehalten werden, nur leider, so lange die Applikation läuft.
Am Schluss wird beschrieben wie man Objektdateien fest abspeichern kann auf der Festplatte, mit der serialisierung/deserialierung.
Das Problem ist es wird nur beschrieben wie man es für ein Auto-Objekt macht, und nicht für mehrere Auto-Objekte(Array), wie es in der Applikation ist.
Könnte mir jemand freundlicherweise helfen?

Vielen Dank
K.
 
F

Flussdichte

Gast
Vielleicht müsste ich den Code noch posten, es sind drei Dateien, drei Klassen, nicht so gross?
 
S

SlaterB

Gast
Code wäre nicht schlecht,
grundsätzlich kann man aber sagen:

serialisiere am besten immer nur genau ein Objekt in einer Datei,
und der positive Haken daran: dieses eine Objekt muss kein einzelnes Auto sein, sondern z.B. ein EINZELNES Array von Autos,
oder ein Objekt deiner eigenen Klasse 'AlleDaten' mit diversen Attributen auf alles mögliche was zu speichern ist

nicht mit Schleife oder so bei ObjectStreams anfangen, nur ein Objekt speichern und ein Objekt lesen,
 
F

Flussdichte

Gast
Hallo,

Das mit den Objekten, ja wäre so gedacht das dass Array ein Objekt ist, nur die Umsetzung, erschwert sich hier.
Hier der code der einen Klasse, die anderen zwei Klassen sind auch mit seralizable und implements gekennzeichnet.

Java:
// Diese Klasse ist der Kern der Anwendung
// Sie wird der VM zum Start übergeben
import java.io.*;
import java.util.Scanner;
import fahrzeug.*;
public class CarControl {
  
  static int anz_autos = 0;
  static final int AUTO_MAX = 50;
  static Auto[] auto_liste = new Auto[AUTO_MAX];
  public static void main(String[] argument) {
    
   boolean ende = false;
    do {
      // erstmal das Menue ausgeben
      System.out.println("\nCarControl - die "+"objektorientierte Fahrzeugverwaltung");
      System.out.println("=========================="+"============================");
      System.out.println("\nHauptmenue");
      System.out.println("\n(1) Autos anzeigen");
      System.out.println("(2) Neues Auto");
      System.out.println("(3) Auto verleihen");
      System.out.println("(4) Autos entfernen");
      System.out.println("\n(0) Programm beenden");
      
      try {
      //versuchen, die Benutzereingabe zu lesen
      System.out.println("\nAuswahl: ");
      Scanner eingabe = new Scanner(System.in);
      short   auswahl = eingabe.nextShort();
      //Benutzereingabe verarbeiten
      
      switch (auswahl) {
        
        case 1:
          liste_anzeigen(anz_autos);
          //for (int i=0; i < anz_autos; i++)
            //auto_liste[i].anzeigen();
          break;
        case 2:
          
          if (anz_autos < AUTO_MAX && anz_autos >=0)
               anz_autos = neues_auto(anz_autos);
          else System.out.println("Die Autoliste ist voll!");  
          break;
        case 3:
          if (auto_liste[auto_wahl(anz_autos)].verleihen())
            System.out.println("OK");
          else
            System.out.println("Auto bereits verliehen!");
          break;
        case 4:
          if (auto_liste[auto_wahl(anz_autos)].entleihen())
            System.out.println("OK");
          else
            System.out.println("Auto nicht verliehen");
          break;
        case 0:
          System.out.println("\nBis bald...");
          ende = true;
          break;
        default:
          System.out.println("\nFalsche Auswahl!");
      }
      
 }    catch (Exception e) { // falsche Eingabe?? 
      System.out.println("Nur ZAHLEN eingeben!");
      }
   }  while (!ende);
    }
      static int neues_auto(int auto_nr) {
        
        System.out.println("\nNeues Auto eingeben");
        System.out.println("=======================");
        auto_liste[auto_nr] = new Auto();
        
        while (!auto_liste[auto_nr].eingeben()) { 
          System.out.println("Fehlerhafte Eingabe!");
        }
        if (auto_nr + 1 > 1) 
                  sortieren(auto_nr + 1);
        System.out.println("Neues Auto angelegt.");
        
        return (auto_nr + 1);
      } 
   
   static void liste_anzeigen(int auto_nr) {
    System.out.println("\nAuto Liste");
    System.out.println("==========\n");
    
    for (int i=0; i < auto_nr; i++) {
      System.out.print((i+1)+") ");
      System.out.println(auto_liste[i].list_eintrag());
   }
    }
   
   static void sortieren(int auto_nr) {
    Auto puffer;
    for (int lauf=0; lauf<auto_nr; lauf++)
      for (int pos=0; pos<auto_nr-1; pos++)
        if (auto_liste[pos].list_eintrag().compareTo (auto_liste[pos+1].list_eintrag())>0) {
           puffer            = auto_liste[pos];
           auto_liste[pos]   = auto_liste[pos+1];
           auto_liste[pos+1] = puffer;
        }
    }
    
    static int auto_wahl(int auto_nr) {
      boolean ende      = false;
      short   auswahl   = 0;
      
      do {
         liste_anzeigen(auto_nr);
         
         try {
            System.out.print("\nAuswahl: ");
            Scanner eingabe = new Scanner(System.in);
            auswahl = eingabe.nextShort();

            if (auswahl > 0 && auswahl <= auto_nr)
               ende = true;
            else
              System.out.println("Ungueltige Auswahl!");
       }    catch (Exception e) {
            System.out.println("Eine ZAHL eingeben!");
            }
      }     while (!ende);
            return (auswahl-1);
}
}

Auto-Objekte werden nicht gelöscht, diese Funktion gibt es nicht, nur das verleihen, aber es muss nicht serialisiert werden.

Hier ein code für das serialisieren-deserialisieren, der nicht vollständig ist, weil mir die funktionen nicht klar sind die schreiben müsste.

Java:
try
  
{
  FileOutputStream dat = new FileOutputStream("datei.dat");
  ObjectOutputStream out = new ObjectOutputStream(dat);
  out.writeObject();
  out.close();

  FileInputStream dat1 = new FileInputStream("datei.dat");
  ObjectInputStream in = new ObjectInputStream(dat1);
  auto_liste = (Auto) in.readObject();
  in.close();
  auto_liste.list_eintrag();
} catch (IOException e){e.printStackTrace();}

}

Vielen Dank
K.
 
S

SlaterB

Gast
out.writeObject();
geht gar nicht, dieser Code hilft nichtmal bei nur einem Auto,
wenn du den Code nur kaputt machst, dann hättest du lieber die funktionierende Variante für ein Auto posten sollen,

und ich schreibe noch ein zweites Mal: ganz einfach das Array statt eines Autos speichern,
wo z.B.
out.writeObject(einAuto);
stand kommt dann neu
out.writeObject(einArray);
hin

das ist nicht schwer zu begreifen oder?
naja, selbst einfachste Dinge können natürlich tausendfach falsch verstanden und noch falscher umgesetzt werden,
ich wäre schon froh über jede Antwort außer 'soso, und hier ist mein Code, und irgendwas geht nicht, bitte helfen'..
 
F

Flussdichte

Gast
Das ist der code für ein Objekt.

Java:
import fahrzeug.*;
import java.io.*;
public class car_load
{
  public static void main(String[] args)
{
     Auto ein_auto;
     try
{
         FileInputStream car_dat = new FileInputStream("car.dat");
         ObjectInputStream car_in = new ObjectInputStream(car_dat);
         ein_auto = (Auto) car_in.readObject();
         car_in.close();
         ein_auto.anzeigen();
}
     catch (Exception e)
{
         e.printStackTrace();
}
}
}

und speichern

Java:
import fahrzeug.*;
import java.io.*;
public class car_safe
{
  public static void main(String[] args)
{
     Auto ente = new Auto("Ente",(short)90,(short)4);
     try
{
        FileOutputStream car_dat = new FileOutputStream("car.dat");
        ObjectOutputStream car_out = new ObjectOutputStream(car_dat);
        car_out.writeObject(ente);
        car_out.close();
}
     catch (IOException e)
{
        e.printStackTrace();
}
}
}

Das war verständlich mit dem Array, nur der ist als static gekennzeichnet, muss ich eine neue Instanz setzen?
 
S

SlaterB

Gast
du musst das Objekt speichern was da ist und die Daten enthält,
und beim Laden erhältst du eine neue Instanz, die musst du an der korrekten Stelle ablegen, von mir aus in eine statische Variable
 
F

Flussdichte

Gast
Diesen Array?

Java:
static Auto[] auto_liste = new Auto[AUTO_MAX];
 
F

Flussdichte

Gast
Hey Danke Slater, dich habe ich auch schon mehrmals gelesen, denke du kennst dich mit Objektdaten aus, schliesslich sind ähnliche Posts auch mehrmals von dir erklärt worden.
Habe mir diverse Topics angesehen, und "Java ist eine Insel" an diesem Punkt durchgelesen, deine Erklärung ist auch verständlich, aber wenn ich den Code so reinschreibe gibt's leider Fehlermeldungen die nicht im ersten Anblick nachvollziehbar sind, wäre schön, wenn mir da geholfen wäre.

Hier der Code, mit diesem Array(writeobject) und Instanzvariable(readobject)

Java:
Auto[] auto_liste = new Auto[]; 
  Auto autoeli;  
try{
  FileOutputStream dat = new FileOutputStream("datei.dat");
  ObjectOutputStream out = new ObjectOutputStream(dat);
  out.writeObject(auto_liste);
  out.close();

  FileInputStream dat1 = new FileInputStream("datei.dat");
  ObjectInputStream in = new ObjectInputStream(dat1);
  autoeli = (Auto) in.readObject();
  in.close();
  autoeli.list_eintrag();
  } catch (IOException e){e.printStackTrace();}
}

Vielen Dank
K.
 
S

SlaterB

Gast
hast du nicht in anderen Postings von mir gelesen dass du die Fehlermeldung dazuposten solltest?
da du nur wenig Code und unbekannte Klassen postest kann ich den Code nichtmal richtig ausprobieren,

aber gut, der Fehler scheint hier sichtbar:
den Speichern-Code hast du von einem Objekt auf das Array umgestellt, beim Laden versuchst noch ein einzelnes Auto zu lesen,
das fällt dir überhaupt nicht auf?
keinerlei Verständnis für irgendwas von diesen Vorgängen?
(ich meckere grad besonders viel, sorry, irgendwie nervt mich dieser Thread hier ;) )
 
F

Flussdichte

Gast
Ja, also ich schreib dir diese 3 Klassen rein.
Mich nervt der Code ja auch, aber das ist's ja nicht, wenn diese Applikation, nicht läuft, steht ja im Buch drin das es möglich wäre. Für dich wird's easy sein, da du dich mit Java gut auskennst.

Java:
package fahrzeug;
import java.io.Serializable;
abstract class StrassenFzg implements Serializable {
  
  protected String bez;
  protected short geschw;
  protected boolean verliehen;
  abstract boolean eingeben();
  abstract boolean anzeigen();
  public boolean entleihen() {
     if (!verliehen)
          return false;
     else {
        verliehen = false;
        return true;
        }
  }
  public boolean verleihen() {
    if (verliehen) 
      return false;
    else {
      verliehen = true;
      return true;
      }
  }
}

Java:
package fahrzeug;

import java.io.Serializable;
import java.io.*;
import java.util.Scanner;

public class Auto extends StrassenFzg implements Serializable {
  
   public short  plaetze;
   
   public boolean eingeben() {
     
    Scanner eingabe = new Scanner(System.in);
      try {
        System.out.print("Bezeichnung: ");
        bez = eingabe.nextLine();
        System.out.print("Sitzplaetze: ");
        plaetze = eingabe.nextShort();
        System.out.print("Geschwindigkeit: ");
        geschw = eingabe.nextShort();
        return true;
        }
        catch (Exception e) {
        return false;
        }
   }

public final static int VK_KM = 50000;
public static int anz_autos = 0;
public Auto() {
   anz_autos++;
   }

 public Auto(String k_bez, short k_geschw, short k_plaetze) {
  bez     = k_bez;
  geschw  = k_geschw;
  plaetze = k_plaetze;
  anz_autos++;
  }

public String list_eintrag() {
  String text;
  text = bez+", "+plaetze+" Sitzplaetze, "+geschw+ " km/h Hoechstgeschwindigkeit";
  if (verliehen)
    text = text+" *";
  return text;
  }

 public boolean anzeigen() {
  
  System.out.println("\nDas Auto ist ein "+bez);
  System.out.println("Es hat "+plaetze+" Sitze.");
  System.out.println("Der Top-Speed: "+geschw);
  if (verliehen)
    System.out.println("Es ist verliehen.");
  else
    System.out.println("Es ist nicht verliehen.");
  return true;
  }
}

Java:
// Diese Klasse ist der Kern der Anwendung
// Sie wird der VM zum Start übergeben
import java.io.*;
import java.util.Scanner;
import fahrzeug.*;
public class CarControl {
  
  static int anz_autos = 0;
  static final int AUTO_MAX = 50;
  static Auto[] auto_liste = new Auto[AUTO_MAX];
  public static void main(String[] argument) {
    
   boolean ende = false;
    do {
      // erstmal das Menue ausgeben
      System.out.println("\nCarControl - die "+"objektorientierte Fahrzeugverwaltung");
      System.out.println("=========================="+"============================");
      System.out.println("\nHauptmenue");
      System.out.println("\n(1) Autos anzeigen");
      System.out.println("(2) Neues Auto");
      System.out.println("(3) Auto verleihen");
      System.out.println("(4) Autos entfernen");
      System.out.println("\n(0) Programm beenden");
      
      try {
      //versuchen, die Benutzereingabe zu lesen
      System.out.println("\nAuswahl: ");
      Scanner eingabe = new Scanner(System.in);
      short   auswahl = eingabe.nextShort();
      //Benutzereingabe verarbeiten
      
      switch (auswahl) {
        
        case 1:
          liste_anzeigen(anz_autos);
          //for (int i=0; i < anz_autos; i++)
            //auto_liste[i].anzeigen();
          break;
        case 2:
          
          if (anz_autos < AUTO_MAX && anz_autos >=0)
               anz_autos = neues_auto(anz_autos);
          else System.out.println("Die Autoliste ist voll!");  
          break;
        case 3:
          if (auto_liste[auto_wahl(anz_autos)].verleihen())
            System.out.println("OK");
          else
            System.out.println("Auto bereits verliehen!");
          break;
        case 4:
          if (auto_liste[auto_wahl(anz_autos)].entleihen())
            System.out.println("OK");
          else
            System.out.println("Auto nicht verliehen");
          break;
        case 0:
          System.out.println("\nBis bald...");
          ende = true;
          break;
        default:
          System.out.println("\nFalsche Auswahl!");
      }
      
 }    catch (Exception e) { // falsche Eingabe?? 
      System.out.println("Nur ZAHLEN eingeben!");
      }
   }  while (!ende);
    }
      static int neues_auto(int auto_nr) {
        
        System.out.println("\nNeues Auto eingeben");
        System.out.println("=======================");
        auto_liste[auto_nr] = new Auto();
        
        while (!auto_liste[auto_nr].eingeben()) { 
          System.out.println("Fehlerhafte Eingabe!");
        }
        if (auto_nr + 1 > 1) 
                  sortieren(auto_nr + 1);
        System.out.println("Neues Auto angelegt.");
        
        return (auto_nr + 1);
      } 
   
   static void liste_anzeigen(int auto_nr) {
    System.out.println("\nAuto Liste");
    System.out.println("==========\n");
    
    for (int i=0; i < auto_nr; i++) {
      System.out.print((i+1)+") ");
      System.out.println(auto_liste[i].list_eintrag());
   }
    }
   
   static void sortieren(int auto_nr) {
    Auto puffer;
    for (int lauf=0; lauf<auto_nr; lauf++)
      for (int pos=0; pos<auto_nr-1; pos++)
        if (auto_liste[pos].list_eintrag().compareTo (auto_liste[pos+1].list_eintrag())>0) {
           puffer            = auto_liste[pos];
           auto_liste[pos]   = auto_liste[pos+1];
           auto_liste[pos+1] = puffer;
        }
    }
    
    static int auto_wahl(int auto_nr) {
      boolean ende      = false;
      short   auswahl   = 0;
      
      do {
         liste_anzeigen(auto_nr);
         
         try {
            System.out.print("\nAuswahl: ");
            Scanner eingabe = new Scanner(System.in);
            auswahl = eingabe.nextShort();

            if (auswahl > 0 && auswahl <= auto_nr)
               ende = true;
            else
              System.out.println("Ungueltige Auswahl!");
       }    catch (Exception e) {
            System.out.println("Eine ZAHL eingeben!");
            }
      }     while (!ende);
            return (auswahl-1);
}
}

Code der Datenobjekte
Java:
final int AUTO_MAX = 50;
  Auto[] auto_liste = new Auto[AUTO_MAX]; 
  try {
 
  FileOutputStream dat = new FileOutputStream("datei.dat");
  ObjectOutputStream out = new ObjectOutputStream(dat);
  out.writeObject(auto_liste);
  out.close();

  FileInputStream dat1 = new FileInputStream("datei.dat");
  ObjectInputStream in = new ObjectInputStream(dat1);
  auto_liste = (Auto[]) in.readObject();
  in.close();
  auto_liste.liste_anzeigen();
} catch (IOException e){e.printStackTrace();}

Fehlermeldung mit dem Datenobjekt-code
Java:
C:\Fahrzeuge>javac Car_Control2.java
Car_Control2.java:147: error: cannot find symbol
  auto_liste.liste_anzeigen();
            ^
  symbol:   method liste_anzeigen()
  location: variable auto_liste of type Auto[]
1 error

Das ist kompetentes Forum, in dem Java gut erklärt wird. :)

Beste Grüsse
K.
 
N

nillehammer

Gast
Zu Deinem Post von Heute 04:08:
Du kannst nur das rausholen, was Du vorher reingepackt hast. Reingepacht hast Du einen Aray von Autos. Mit der Zeile hier sagst Du Java aber, dass Du ein einzelnes Auto erwartest:
Java:
  autoeli = (Auto) in.readObject();
Das dürfte mit einer ClassCastException quittiert werden. Du musst natürlich nach (Auto[]) casten. Du kannst das Ergebnis dann natürlich nicht der Variable "autoeli" zuweisen. Die hat den Typ Auto. Du brauchst aber eine eine Variable vom Typ Auto[], z.B. "auto_liste".

Und zu Deinem Post von Heute 18:32: Das ist ein ganz anderes Problem. Würd ich nen neuen Thread für aufmachen, weil man sonst nicht mehr weiß wie man auf was antwortet. Aber egal, die Ursache hierfür ist sehr schön vom Compiler beschrieben.
Code:
Car_Control2.java:147: error: cannot find symbol
  auto_liste.liste_anzeigen();
            ^
  symbol:   method liste_anzeigen()
  location: variable auto_liste of type Auto[]
Das liest sich so:
"Car_Control2.java:147: error: cannot find symbol
auto_liste.liste_anzeigen();":
Ich habe in Car_Control2.java an der Zeile 147 einen Error. Ich kann dort ein Symbol nicht finden und zwar das Symbol auto_liste.liste_anzeigen(). Damit ist schon alles gesagt, nämlich wo der Fehler ist und was der Fehler ist.

" symbol: method liste_anzeigen()"
Das Symbol, das ich nicht finden kann, ist ein Methodenname und heißt liste_anzeigen()

" location: variable auto_liste of type Auto[]"
Und zwar an der valiable auto_liste, die den Typ Auto[] hat.

Der Compiler beschwert sich also, dass Du auf Auto[] versuchst, die Methode liste_anzeigen() aufzurufen. Stellt dir Auto[] diese Methode zur Verfügung? Nein, also beschwert er sich zu Recht. Wo hast Du die Methode definiert? Nirgends.

Es gibt eine Methode liste_anzeigen(int auto_nr) in CarControl, könnte sein, dass Du die aufrufen wolltetst. Da hätte dann aber der int Parameter gefehlt...
 
Zuletzt bearbeitet von einem Moderator:
F

Flussdichte

Gast
Wenn wir einen neuen Thread eröffnen, müssten wir diesen hier löschen.
Der Code wird ja mit der Zeit korrigiert, also jeder post beinhaltet einen verbesserten code, so hoffe ich doch.
Zum letzten post, ja das ist richtig es fehlte ein argument in der methode liste_anzeigen(), den habe ich jetzt aufgenommen. Aber leider bringt der compiler weitere Fehlermeldungen, habe auch schon diverses ausprobiert, meines Wissens nach.
Irgendjemand kennt sich bestimmt besser damit aus, und kennt die Fehlerquellen.

Java:
final int AUTO_MAX = 50;
  Auto[] auto_liste = new Auto[AUTO_MAX]; 
  try {
 
  FileOutputStream dat = new FileOutputStream("datei.dat");
  ObjectOutputStream out = new ObjectOutputStream(dat);
  out.writeObject(auto_liste);
  out.close();

  FileInputStream dat1 = new FileInputStream("datei.dat");
  ObjectInputStream in = new ObjectInputStream(dat1);
  auto_liste = (Auto[]) in.readObject();
  in.close();
  auto_liste.liste_anzeigen(int auto_nr);
} catch (IOException e){e.printStackTrace();}

Fehler
Java:
C:\Fahrzeuge>javac Car_Control2.java
Car_Control2.java:147: error: '.class' expected
  auto_liste.liste_anzeigen(int auto_nr);
                                ^
Car_Control2.java:147: error: ';' expected
  auto_liste.liste_anzeigen(int auto_nr);
                                       ^
2 errors

Gruss
K.
 
N

nillehammer

Gast
Java:
auto_liste.liste_anzeigen(int auto_nr);
Wie ich schon geschrieben habe, kann man auf Auto[] keine Methode "liste_anzeigen" aufrufen. Das geht einfach nicht. Diese Methode wird von Auto[] nicht zur Verfügung gestellt. Und allgemein: Vei einem Methodenaufruf musst Du natürlich den Wert für den Parameter angeben, doch nicht einfach Typ und Namen wiederholen. Bitte lies Dir (nochmal) ein Java-Buch durch. Ich denke ein Forum ist nicht der geeignete Ort, um für allgemeines Verständnis der Sprachmittel von Java zu sorgen.
 
Zuletzt bearbeitet von einem Moderator:
F

Flussdichte

Gast
Bin gerade dabei ein Buch zulesen, und manchmal muss man auch zurückblättern.
Das mit dem Array klingt irgendwie logisch, es ist zwar ein Objekt, aber man kann darauf nichts referenzieren.
Welche Objektreferenz müsste ich hier gegebenfalls instanzieren? Es ist ja alle in einer Klasse(CarControl).

Das erste Buch aus dem ich die Applikation habe, ist fertig gelesen, ausser den GUI-Teil, und es wird erklärt wie man das macht, leider nur für einzelne Autos, sollte ich nun die weitere Auflage kaufen, die ich womöglich nicht finde. Es ist ja auch Applikations spezifisch, zu wissen wie Objektdaten funktionieren hilft nicht grad überall weiter. Es ist nicht der Sinn, dass mir jemand die Lösung gleich zeigt, aber zumindest erklärt wie das funktioniert, solche praktischen Beispiele sind sehr hilfreich.

Danke
K.
 
N

nillehammer

Gast
Das mit dem Array klingt irgendwie logisch, es ist zwar ein Objekt, aber man kann darauf nichts referenzieren.
Naja, sowas wie length geht schon, aber viel mehr eben nicht. Ein Array ist wie ne dumme Kiste. Man kann Sachen drin aufbewahren, Sachen rausholen und die Kiste fragen, wieviele Sachen drinnen sind.
Welche Objektreferenz müsste ich hier gegebenfalls instanzieren? Es ist ja alle in einer Klasse(CarControl).
Garkeine. Du hast die Methode als static definiert. Damit ist es eine Klassenmethode und kann direkt auf der Klasse aufgerufen werden. Also z.B.
Java:
CarControl.liste_anzeigen(3);
 
F

Flussdichte

Gast
Danke für die Erklärung. Eigentlich hatte ich auch schon etwas drüber gelesen, in dem Buch an dem ich jetzt dran bin. Das letzte Buch war dies, mit der obigen Applikation, hoffe das ich das noch zustande bringe mit den Objektdaten.

Wenn man den Array als Objekt erzeugt dann könnte man z.B [c] Array[] auto_liste = new CarControl()[/c] erzeugen, und darauf die Methode liste_anzeigen(0) referenzieren. [c]Array[].liste_anzeigen(0)[/c] sollte doch auch gehen.

Aber der Array ist ja auch [c]static[/c] von dem her braucht es nicht erzeugt zu werden als Objekt, wie du sagtest.
 
F

Flussdichte

Gast
Ja ok stimmt. vieles kann man selber lernen, auch wenn manchmal etwas Erklärung gut wäre, für den aha-Effekt.

-- :) Danke

Gruss
K.
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
H Interface Objekte speichern und laden (serialisieren/deserialisieren) Java Basics - Anfänger-Themen 1
P Serialisieren-deserialisieren Java Basics - Anfänger-Themen 18
D Serialisieren/deserialisieren Java Basics - Anfänger-Themen 37
R Objecte Serialisieren / Deserialisieren Java Basics - Anfänger-Themen 2
V Objekt serialisieren/Deserialisieren und per get verschicken Java Basics - Anfänger-Themen 5
J Serialisierung - Array-Objekt serialisieren/deserialisieren Java Basics - Anfänger-Themen 6
A Methoden Serialisieren Java Basics - Anfänger-Themen 17
J Serialisieren, aber wie? Java Basics - Anfänger-Themen 3
M Datum serialisieren Java Basics - Anfänger-Themen 1
M Serialisieren Java Basics - Anfänger-Themen 7
T Array serialisieren Java Basics - Anfänger-Themen 8
H Serialisieren Java Basics - Anfänger-Themen 9
E Serialisieren Java Basics - Anfänger-Themen 2
D Serialisieren, was bringt das? Java Basics - Anfänger-Themen 8
F Serialisieren Java Basics - Anfänger-Themen 35
K Serialisieren mit Progress Java Basics - Anfänger-Themen 2
S JFrame mit JTextPane serialisieren Java Basics - Anfänger-Themen 5
W Objekt (de-)serialisieren Java Basics - Anfänger-Themen 5
G Serialisieren mehrerer Objekte in EINE (XML)-Datei Java Basics - Anfänger-Themen 12
E ArrayList mit eigenen typ serialisieren? Java Basics - Anfänger-Themen 1
S Klassen Serialisieren Java Basics - Anfänger-Themen 5
V Serialisieren einer ShortMessage (javax.sound.midi) Java Basics - Anfänger-Themen 5
M Serialisieren beim Schließen des Progs sicher beenden Java Basics - Anfänger-Themen 4
H Datei nach serialisieren leer ? Java Basics - Anfänger-Themen 10
G static var serialisieren möglich? Java Basics - Anfänger-Themen 4
Lulumann6 Serialisieren? Java Basics - Anfänger-Themen 9
artur.cichosz Objekt als String serialisieren Java Basics - Anfänger-Themen 7
M Problem beim Serialisieren Java Basics - Anfänger-Themen 7
S Generics serialisieren? Java Basics - Anfänger-Themen 2
C LinkedList serialisieren? Java Basics - Anfänger-Themen 22
G Color und String serialisieren Java Basics - Anfänger-Themen 2
G alle Instanzen einer Klasse serialisieren Java Basics - Anfänger-Themen 4
C Mehrere Objekte in einer Liste einfügen und serialisieren Java Basics - Anfänger-Themen 1
S Vector serialisieren Java Basics - Anfänger-Themen 4
C Objekt serialisieren Java Basics - Anfänger-Themen 5
F Kann JSON nicht deserialisieren Java Basics - Anfänger-Themen 0
kaoZ Input/Output Android : Deserialisieren von mehreren Objekten in einer Datei Java Basics - Anfänger-Themen 0
O Objekt Listen serialisierung und deserialisieren Java Basics - Anfänger-Themen 5
H Datentypen Serialization... deserialisieren? Java Basics - Anfänger-Themen 4
S Deserialisieren auf sich selbst Java Basics - Anfänger-Themen 4
S Deserialisieren: alle Objekte ausgeben - wie mache ich das? Java Basics - Anfänger-Themen 2
G Problem beim Deserialisieren Java Basics - Anfänger-Themen 6
G Deserialisieren einer ArrayList Java Basics - Anfänger-Themen 2
R Abbruchbedingung readObject (deserialisieren) Java Basics - Anfänger-Themen 31

Ähnliche Java Themen

Neue Themen


Oben