myGully.com

myGully.com (https://mygully.com/index.php)
-   Programmierung (https://mygully.com/forumdisplay.php?f=67)
-   -   Java Klassenattribute aus Array (https://mygully.com/showthread.php?t=3092247)

Dante1253 11.11.13 15:12

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) {
$this->$key = $value;
}

Will heißen: Ich bekomme einen Array (alternativ auch einen anderen iterierbaren Datentypen) und kann Klassenattribute die den Namen des jeweiligen Keys tragen mit dem zugehörigen Wert ausstatten.

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!

ProgMaster 11.11.13 17:03

Das geht via Reflection.

XxeragonxX 11.11.13 21:00

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.

NetWebs 12.11.13 06:31

@xxeragonxx

Wohl am Thema vorbeigelesen. Er möchte Klassenattribute setzen!

Matze500 12.11.13 06:43

Müssten das nicht der Konstruktor bzw Getter,Setter sei die du suchst ?

ProgMaster 12.11.13 16:47

Zitat:

Zitat von Matze500 (Beitrag 25031036)
Müssten das nicht der Konstruktor bzw Getter,Setter sei die du suchst ?

Weißt du wovon du redest? Wie willst du das während der Runtime machen???

XxeragonxX 12.11.13 16:48

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.

NetWebs 12.11.13 17:08

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.