Arraylist<Object> mit verschiedenen Objects ausgeben

Spiderpic98

Mitglied
Ich möchte für mein kleines Textadventure ein Inventar erstellen,welches in einer ArrayList gespeichert wird.
Diese ArrayList möchte ich in der Konsole ausgeben. Das Problem ist, ich kann nicht die get-Methoden aus den Klassen verwenden,
weil ich ja nicht die get Methoden von zum Beispiel eines Trankes für die get-Methoden einer Waffe benutzen kann. Zumindest wüsste ich nicht wie.
Und ich wüsste auch nicht wie ich während der for Schleife mir ausgeben sollte von welcher Klasse das Objekt ist, um zu sagen welche Methoden
ich nutzen kann.

Mein erster Ansatz war

Java:
public static void main(String[] args) {



        ArrayList<Object> inventar = new ArrayList();

        KleinerTrank ktrank = new KleinerTrank(KleinerTrank.stärke,KleinerTrank.anzahl);

        inventar.add(ktrank);



        for (int i = 0; i <= inventar.size(); i++) {

            System.out.println(inventar.get(i));

        }

    }

Allerdings bekomme ich nur die Speicheradresse.

Hat jemand vielleicht eine Idee?
 

fhoffmann

Top Contributor
Zum einen ist es fraglich, ob es eine gute Idee ist, eine ArrayList zu erstellen, die beliebige Objekte erwartet:
Java:
ArrayList<Object> inventar
Dass du nur einen cryptischen Code ("die Speicheradresse") ausgegeben bekommst, kannst du verhindern, indem du die toString()-Methode überschreibst. In dieser Methode kannst du dann auch auf die Member der Klasse (die get-Methoden) zugreifen, also
Java:
public class KleinerTrank {
  // dein Code
  public String toString() {
    String s = ""; // hier alles hereinschreiben, was interessant ist
    retrurn s;
  }
}
 
K

kneitzel

Gast
Ganz nebenbei: Das "kryptische" ist nicht die Speicheradresse sondern der Hashcode. Das ist zwar bei Object in der Regel tatsächlich die Adresse (Das ist ein Implementierungsdetail, das nicht zwingend der Fall sein muss laut Dokumentation im Source Code). Und spätestens bei abgeleiteten Klassen, die hashcode überschreiben, ist dies nicht mehr der Fall.

Gäbe es denn eine bessere Alternative?
Ja, denn in das Inventar können ja nur Gegenstände des Spieles getan werden. Daher können Deine Klassen die Gegenstände und so darstellen, von einer übergeordneten Klasse abgeleitet werden. Oder Du hast ein Interface a.la. "Tragbar", wovon alles abgeleitet wurde, das ins Inventar aufgenommen werden kann.
Somit hättest Du dann eine ArrayList<Tragbar> oder ArrayList<Spielgegenstand> oder so.
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
MoxMorris Einige Methoden aus verschiedenen Klassen nacheinander auszuführen läuft seltsam Java Basics - Anfänger-Themen 2
C Parameter in verschiedenen Anzahl und Typen Java Basics - Anfänger-Themen 6
I Verschiedenen WebApp kommunizieren lassen Java Basics - Anfänger-Themen 1
Bademeister007 Elemente aus zwei verschiedenen Arrays miteinander vergleichen und gegeben falls entfernen Java Basics - Anfänger-Themen 14
P Arrays mit verschiedenen Längen miteinander dividieren. Java Basics - Anfänger-Themen 1
W Mehrfach das gleiche Attribut für ein Objekt erzeugen (mit verschiedenen Werten) Java Basics - Anfänger-Themen 2
T Java Swing - Dreieck zeichnen mit verschiedenen Variablen Java Basics - Anfänger-Themen 8
A Methoden Array aus verschiedenen Methoden bearbeiten bzw. öffnen Java Basics - Anfänger-Themen 18
B Automatisch Objekte erzeugen mit verschiedenen Namen Java Basics - Anfänger-Themen 4
L Dynamische Anzahl an Arrays mit verschiedenen Namen erzeugen Java Basics - Anfänger-Themen 6
J Gleiche Methode in 2 verschiedenen Klassen - Lösung ? Java Basics - Anfänger-Themen 8
scratchy1 Argumente mit verschiedenen Schleifen ausgeben Java Basics - Anfänger-Themen 3
R OOP Instanzierung in verschiedenen Klassen Java Basics - Anfänger-Themen 8
S Daten aus zwei Verschiedenen Tabellen in eine ArrayListe Java Basics - Anfänger-Themen 4
K die Source eines Events bei verschiedenen Quellen herausfinden Java Basics - Anfänger-Themen 1
T Classpath Zwei gleiche Dateinamen in verschiedenen Projekten möglich? Java Basics - Anfänger-Themen 13
S generische methode mit verschiedenen datentypen Java Basics - Anfänger-Themen 3
I Brauche Denkanstoß: Weitergabe von Kontaktinfos aus verschiedenen Kontaktformularen von Webseiten Java Basics - Anfänger-Themen 2
D Objekte mit verschiedenen Attributen erstellen Java Basics - Anfänger-Themen 3
B OOP Summe aus verschiedenen Instanzen einer Klasse berechnen Java Basics - Anfänger-Themen 2
A Eine Variable in verschiedenen Ereignisprozeduren benutzen Java Basics - Anfänger-Themen 7
N Verweise auf Variablen in verschiedenen Threads Java Basics - Anfänger-Themen 4
J JLabels in schleife erzeugen mit verschiedenen namen? Java Basics - Anfänger-Themen 5
H Java auf verschiedenen Plattformen Java Basics - Anfänger-Themen 3
I Ausgabe in verschiedenen Entwicklungsumgebungen anders Java Basics - Anfänger-Themen 6
L Threads Thread aus verschiedenen Klassen ansprechen Java Basics - Anfänger-Themen 11
J Probleme mit verschiedenen Private Klassen Java Basics - Anfänger-Themen 3
A Methode aus verschiedenen Klassen aufrufen Java Basics - Anfänger-Themen 8
T Dynamisches abarbeiten von statischen Methode aus verschiedenen Klassen. Java Basics - Anfänger-Themen 5
B Threads Geschwindigkeit der Befehle auf verschiedenen PCs gleich machen Java Basics - Anfänger-Themen 3
U Objekte in Array erstellen und Methode in verschiedenen klassen aufrufen Java Basics - Anfänger-Themen 5
M Anwendung in verschiedenen JREs Java Basics - Anfänger-Themen 42
C jar Datei auf verschiedenen Systemen ausführen Java Basics - Anfänger-Themen 7
SheldoN Töne abspielen auf verschiedenen Buttons Java Basics - Anfänger-Themen 17
J verschiedene Anweisungen bei verschiedenen Zuständen Java Basics - Anfänger-Themen 9
G String mit verschiedenen Zeichen analysieren Java Basics - Anfänger-Themen 5
K Datentypen Gleiche Zufallszahlen in verschiedenen Datenstrukturen Java Basics - Anfänger-Themen 6
T ArrayList mit verschiedenen Datentypen verhindern Java Basics - Anfänger-Themen 8
R Array aus verschiedenen Datentypen Java Basics - Anfänger-Themen 29
A JButtons dynamisch generieren mit verschiedenen actionhandlern Java Basics - Anfänger-Themen 6
K Collections Wie kann Ich eine Hashmap mit verschiedenen Hashsets füllen. Java Basics - Anfänger-Themen 4
K OOP Variablen aus verschiedenen Klassen Java Basics - Anfänger-Themen 4
E Auf Variablen in verschiedenen Klassen zugreifen? Java Basics - Anfänger-Themen 4
J OOP Ausgabe verschiedener Variabeln aus verschiedenen Subclasses Java Basics - Anfänger-Themen 2
Z Geschwindigkeitsunterschied bei verschiedenen Schreibweisen Java Basics - Anfänger-Themen 4
F Gleiche JUnit-Tests automatisert mit verschiedenen Methoden ausführen Java Basics - Anfänger-Themen 6
4 OOP Problem beim Speichern verschiedener Klassen in verschiedenen Dateien Java Basics - Anfänger-Themen 25
Hamstinator Design und Listener in verschiedenen Klassen Java Basics - Anfänger-Themen 6
B Teil eines Bild kopieren bei verschiedenen Zoomstufen Java Basics - Anfänger-Themen 3
M Sets:Ein Set aus zwei verschiedenen bilden Java Basics - Anfänger-Themen 13
babel ein Vector mit verschiedenen Werten auslesen und berechnen Java Basics - Anfänger-Themen 34
S Umsetzung von verschiedenen Anweisungen Java Basics - Anfänger-Themen 8
braindump Packages in verschiedenen Unterverzeichnissen Java Basics - Anfänger-Themen 3
A Frage zu verschiedenen Klassen Java Basics - Anfänger-Themen 11
C Auf ProgressBar von zwei verschiedenen .class Dateien zugrei Java Basics - Anfänger-Themen 2
A MainClass not Found auf verschiedenen Rechnern Java Basics - Anfänger-Themen 2
JohnMurdoch Methoden von verschiedenen Objekten in Liste aufrufen Java Basics - Anfänger-Themen 3
R Dateizugriff auf verschiedenen OS Java Basics - Anfänger-Themen 3
B LayoutManager Anorden von verschiedenen JPanels Java Basics - Anfänger-Themen 5
Q Labels auf verschiedenen Ebenen? Java Basics - Anfänger-Themen 5
G Jar-File erzuegen, das Code a verschiedenen Java Versionen? Java Basics - Anfänger-Themen 4
B JTextArea mit verschiedenen Fonts Java Basics - Anfänger-Themen 4
Bierhumpen Array gefüllt mit verschiedenen Werten Java Basics - Anfänger-Themen 7
C Programm mit verschiedenen wechselbaren Sprachen Java Basics - Anfänger-Themen 6
T arrays: Anzahl der verschiedenen Werte bestimmen Java Basics - Anfänger-Themen 7
C Globale Variablen und Array mit verschiedenen Typen Java Basics - Anfänger-Themen 3
G Aus verschiedenen Formaten ein Date-Objekt machen Java Basics - Anfänger-Themen 3
G Text aus verschiedenen Dateien in JTextArea laden Java Basics - Anfänger-Themen 3
S Methoden Multi-Thread und Methoden Objects. Java Basics - Anfänger-Themen 1
G Moving Objects with Threads (implements Runnable) Java Basics - Anfänger-Themen 1
E Senden von Objects an Client. Variablenwerte kommen nicht an Java Basics - Anfänger-Themen 5
H Datentypen Casting objects Java Basics - Anfänger-Themen 29
W Objects speichern Java Basics - Anfänger-Themen 4
W Auf Objects zugreifen Java Basics - Anfänger-Themen 17
S Array of objects und ständige Constructor-Aufrufe Java Basics - Anfänger-Themen 4
D Objects-Wie realiesieren. Java Basics - Anfänger-Themen 4
G fehler bei erzeugen eines objects Java Basics - Anfänger-Themen 4
P probleme mit variablen eines Objects Java Basics - Anfänger-Themen 13
T Typsicheres casten eines Objects Java Basics - Anfänger-Themen 5
L array of objects in liste packen Java Basics - Anfänger-Themen 2
R Textfile vs Serialized Objects Java Basics - Anfänger-Themen 4
R Objects, arrays usw. Java Basics - Anfänger-Themen 5
B equals() der Klasse Objects liefert unerwartetes Ergebnis Java Basics - Anfänger-Themen 17

Ähnliche Java Themen

Neue Themen


Oben