![]() |
Java Klassenattribute aus Array
Hallo!
Ich bin Java-Neuling und bin gerade dabei ein kleines Projekt zu schreiben, um die Sprache zu lernen. Aus PHP kenne ich die Möglichkeit in einer Klasse faktisch folgendes zu tun: Code:
foreach ($array as $key => $value) { Nun meine Frage: Geht das in Java auch? Also gibt es eine Möglichkeit, auf die Klassenattribute (respektive natürlich Objektattribute!) in dieser Form zuzugreifen? Danke vielmals & liebe Grüße! |
Das geht via Reflection.
|
Das ist einfach eine Map<Key,Value>. Wobei Key ein Datentyp sein muss der Equals bzw den Hashcode überschrieben haben muss und eindeutig ist. Es kann nicht 2 selbe Keys in einer Map geben. Ein Key kann nur ein Objekt sein kein einfacher Datentyp. Die Value bekommt man mit map.get(Key). Alternativ kann man natürlich trüber iterieren. Mit map.values() bekommt man einen value Iterator mit entrySet() Value + dem Key und keySet() nur die Keys.
Die Klasse String eignet sich z.B sehr gut als Key Attribut. |
@xxeragonxx
Wohl am Thema vorbeigelesen. Er möchte Klassenattribute setzen! |
Müssten das nicht der Konstruktor bzw Getter,Setter sei die du suchst ?
|
Zitat:
|
Achso ich hab nur Key und Value gelesen und bei PHP wars eh schon vorbeixd
Aber mal ehrlich so etwas wie Attribute eines Objektes setzten lernt man in jedem Anfänger Tut im 2 Kapitel. In OO Sprachen wie Java sollte ein Objekt seine Attribute nur selbst ändern können deshalb gibt es z.B in Java das Schlüsselwort private. Die Sichtbarkeit der Attribute sind daher sehr beschränkt. Um anderen Objekten dennoch das ändern der Werte zu ermöglichen kann man explizit Getter/Setter Methoden deklarieren (gidf) und es außenstehenden Objekten ermöglichen die Werte durch diese Methoden zu manipulieren bzw. auszulesen. Ich glaube der OT meint etwas anderes und drückt sich einfach nur falsch aus. Ich kann mir nicht vorstellen, dass ein Java Neuling so etwas wie Reflection meint. |
Das was der TE beschreibt ist nur via Reflection möglich und Reflection sollte auch einem Anfänger bekannt sein.
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 02:11 Uhr. |
Powered by vBulletin® (Deutsch)
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.