Variablen eines Objektes (instanz) in einen Array lesen

Status
Nicht offen für weitere Antworten.

needJavaProz

Mitglied
Hallo zusammen.

ich möchte gerne alle variablen eines objektes auslesen und zwar in einen Array (Hashtable / set)

das untenstehende geht so nicht und wie ich in api gelesen habe würde das so oder so nur die statischen variablen / Felder auslesen. Ich hoffe fields sind für sun variablen.

Code:
	public void setVars(Object o) throws IllegalArgumentException, IllegalAccessException {
		Field[] allFields = o.getClass().getFields();
		for (Field fl : allFields) {
			for (String key : resFields.keySet()) {
				if (fl.getName() == key) {
					fl.set(fl, resFields.get(key));
					
				}
			}
		}
	}

ich bräuchte aber alle varbiablen einer Klasseninstanz am besten als string für vergleich und so.

gibt es da irgendeine Möglichkeit das zu machen.

Danke und Gruss
Thomas
 
S

SlaterB

Gast
> fl.set(fl, resFields.get(key))

was bringt das denn?
dass man einem Objekt x als Parameter x selber übergibt ist doch sehr ungewöhnlich, in diesem Fall falsch,
o könntest du übergeben

> if (fl.getName() == key) {

Strings mit equals vergleichen!

> das untenstehende geht so nicht

der Code hat ja auch wenig mit Auslesen zu tun, eher mit Setzen (set vs get)

> wie ich in api gelesen habe würde das so oder so nur die statischen variablen / Felder auslesen

wo hast du das denn gelesen, kann ich nicht bestätigen,

-----

die zentrale Operation ist get von Field,
da bekommst du ein Objekt,
wie du daraus einen String machst hängt von dir und dem jeweiligen Objekt ab,
im einfachen Falle toString() aufrufen
 
S

SlaterB

Gast
hmm, die einzige Möglichkeit, statische von nichtstatischen Feldern zu unterscheiden,
scheint Field.getModifers() zu sein,

Modifier.isStatic(fl.getModifiers())
 

needJavaProz

Mitglied
also prinzipiell hab ich einfach nen hashtable mit key / value wobei key = name der variable sein wird

und damit ich nicht für jede einzelne variable um den wert einzufüllen ne funktion schreiben muss werde also sprich (preis key preis gehe in variable preis)...


deshalb möchte ich über alle variablen loopen und dann schauen ist in meinem hashtable ein key dem namen einer variable und dann den wert dort reinpflanzen.

und das könnte ich dann bei all den provisionen anwenden und löcker einfach alles ins hashtable und vars und gut is.


o.getClass gibt die klassenvariable zurück oder die instanz?
ich mein mit this wär am schönsten aber bei this.getClass steht:


Returns the runtime class of this object. The returned object is that that is locked by static synchronized methods (so ähnlich)

das mit der api hab ich verwechselt.

cheers
Tom






???:L
 
S

SlaterB

Gast
> o.getClass gibt die klassenvariable zurück oder die instanz?

liefert ein Class-Objekt

"hello".getClass()
liefert String.class, ein Objekt der Klasse Class

falls noch andere Fragen waren, dann nicht deutlich genug ;)
 

needJavaProz

Mitglied
this.getClass.getFields();

naja ich sollte mal die api genauer lesen oder so, das zeugs oben gibt statisch zurück.

aber:
this.getClass.getDeclaredFields

gibt die instanz vars zurück.

trotzdem danke für die hilfe
peace
Tom
 
S

SlaterB

Gast
ah, du hast wahrscheinlich nur statische Variablen auf public gesetzt,
denn getFields() liefert nur public zurück, wie ich gerade auch erst getestet/ nachgelesen ( :bae: ) habe
Code:
public class Test
{
    public static void main(String[] args)
        throws Exception
    {
        new A().test();
        new B().test();
    }
}


class A
{
    private int a;
    public int publicA;
    public static int staticA;

    public void test()
    {
        Class c = this.getClass();
        System.out.println("\nteste Objekt der Klasse " + c);
        System.out.println("\ngetFields:");
        for (Field fl : c.getFields())
        {
            System.out.println(fl.getName() + ", " + Modifier.isStatic(fl.getModifiers()));
        }
        System.out.println("\ngetDeclaredFields:");
        for (Field fl : c.getDeclaredFields())
        {
            System.out.println(fl.getName() + ", " + Modifier.isStatic(fl.getModifiers()));
        }
    }
}


class B
    extends A
{
    private int b;
    public int publicB;
    public static int staticB;

}
bei getDeclaredFields gibts noch ne Besonderheit, aber alles Lesevergnügen in der API will ich dir ja nicht nehmen
 

needJavaProz

Mitglied
stimmt du hast recht :toll:

das getDeclared nimmt die private das andere die public :)

gilt auch für die methoden:

hier mit kapselung :)

Code:
	public void setVars() throws IllegalArgumentException, IllegalAccessException, InvocationTargetException {					
		
		Method[] allMethods = this.getClass().getMethods();
		for (Method m : allMethods) {
			for (String key : resFields.keySet()) {
				System.out.println("set" + key);
				System.out.println(m.getName());
				if (m.getName().equalsIgnoreCase("set" + key)) {
					
					m.invoke(this, resFields.get(key));
					
				}
			}
		}
	}


thanks a lot :D
Tom
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
C Erste Schritte Variablen in abhängigkeit von Git branch Allgemeine Java-Themen 7
Fabiator Variablen Variablen Zählen Allgemeine Java-Themen 3
S Mit Methoden kann man definieren für was <T> steht. Geht das auch irgendwie für Variablen? Allgemeine Java-Themen 12
berserkerdq2 Labels in IJVM sind keine lokalen Variablen oder? Allgemeine Java-Themen 2
O Fehler bei Variablen Allgemeine Java-Themen 2
N File Path mit Variablen angeben Allgemeine Java-Themen 1
nonickatall Methoden Kann man Klassen/Methoden aus Variablen heraus aufrufen? Allgemeine Java-Themen 6
R Geometry erstellen die abhängig von Variablen ist Allgemeine Java-Themen 6
O Formatierte String ausgabe bei vier Variablen in einer Zeile Allgemeine Java-Themen 1
P static Blocks und variablen Allgemeine Java-Themen 41
S Klassen Einfügen von unbekannter menge an Variablen in eine Klasse mithilfe von ASM Allgemeine Java-Themen 5
V Datentypen Graphikrechner 2/Strings und Variablen in Doubles umwandeln Allgemeine Java-Themen 6
S Kann man Variablen oder Felder definieren deren Typ zwei Interfaces ist..? Allgemeine Java-Themen 9
M Wie kann man eine void Methode mit Variablen von zwei verschiedenen Objekten ausführen? Allgemeine Java-Themen 15
B Übernommene Variablen(werte) aus der Main-Klasse ändern? Allgemeine Java-Themen 9
D BlueJ, Variablen die mehrfach vorkommen gleichzeitig umbenennen Allgemeine Java-Themen 3
C Variablen Variablen mit unendlichem Wert Allgemeine Java-Themen 22
J Variablen Mehrere int-variablen in txt abspeichern und danach wieder auslesen Allgemeine Java-Themen 1
T Maximale Felder maximale Variablen Allgemeine Java-Themen 2
W Lebendige Variablen herauslesen Allgemeine Java-Themen 1
K Summierung einer Variablen Allgemeine Java-Themen 5
B Gibt es eine Funktion die den Datentyp einer Variablen ermittelt? Allgemeine Java-Themen 8
X Threads Externe Variablen in Run Methoden verändern Allgemeine Java-Themen 4
Messoras Klassen Sämtliche Variablen einer Klasse übernehmen Allgemeine Java-Themen 6
K Static Variablen verbieten Allgemeine Java-Themen 10
I Problem beim Aufrufen, von Objektmethoden/ -variablen Allgemeine Java-Themen 6
J Text lesen und in Variablen speichern Allgemeine Java-Themen 3
A Best Practice Variablen vertauschen - Performance Allgemeine Java-Themen 1
F Variablen Variablen schachteln Allgemeine Java-Themen 6
7 6 int variablen vergleichen Allgemeine Java-Themen 34
C Threads Variablen in einem Thread Aktualisieren Allgemeine Java-Themen 17
M Variablen Variablen in Text einbinden Allgemeine Java-Themen 5
K Überschreiben von Variablen bei rekursivem Funktionsaufruf Allgemeine Java-Themen 2
R Übergreifende Variablen? Allgemeine Java-Themen 10
OnDemand Input/Output Variablen in Datei Speichern um sie wieder auszulesen Allgemeine Java-Themen 4
D Variablen zur Laufzeit global speichern (Registry Pattern?) Allgemeine Java-Themen 6
iB0T "goto" Befehl aus Batch in Java und Variablen wert immer wieder neu setzen Allgemeine Java-Themen 4
D ClassLoader für Variablen einer Klasse setzen Allgemeine Java-Themen 24
B Methoden Alle Methoden und Variablen aus Java-Dateien auslesen. Allgemeine Java-Themen 7
D Alle Variablen final setzen ? Allgemeine Java-Themen 26
C Kapselung Warum graift man auf Variablen nur über Methoden und nich direkt zu? Allgemeine Java-Themen 10
C Classloading und statische Variablen Allgemeine Java-Themen 2
K Variablen speichern Allgemeine Java-Themen 2
S Variablen bei Aufruf zurücksetzen Allgemeine Java-Themen 4
faetzminator statische Variablen in Interface - Vererbung? Allgemeine Java-Themen 9
V Gibt es einen Variablen Cast? Allgemeine Java-Themen 8
K Mehrere JVMs die auf eine Klasse mit statischen Variablen zugreift Allgemeine Java-Themen 19
D Wann sollte ich statische Methoden und Variablen benutzen? Allgemeine Java-Themen 44
M Generische Methoden mit Java und globale Variablen Allgemeine Java-Themen 9
J Statische Variablen, Threadübergreifend. Allgemeine Java-Themen 4
E Variablen anderer Klassen auslesen (nur Name bekannt) Allgemeine Java-Themen 4
P Variablen in einer anderen Klasse auf Änderungen überwachen Allgemeine Java-Themen 12
V Typargument einer Variablen erfragen Allgemeine Java-Themen 4
B Rechnen mit mehreren Variablen Allgemeine Java-Themen 2
G Thread variablen Sichtbarkeit Allgemeine Java-Themen 15
J Java Pfad nicht mehr in Path Variablen??? Allgemeine Java-Themen 2
T Mit JNI finale Variablen überschreiben Allgemeine Java-Themen 14
T JNI -> auf Java-Variablen etc zugreifen Allgemeine Java-Themen 6
M Bezeichnung für Component-Variablen Allgemeine Java-Themen 6
M Variablen an Java-Programm übergeben Allgemeine Java-Themen 3
Airwolf89 dynamischer Zugriff auf Variablen/ Objekte Allgemeine Java-Themen 4
A Überschreibung von Variablen Allgemeine Java-Themen 3
A JavaCC: Variablen zaehlen Allgemeine Java-Themen 12
B globale und lokale Variablen Allgemeine Java-Themen 17
G referenz von variablen Allgemeine Java-Themen 9
O getRuntime().Exec() - Environment - Variablen setzen? Allgemeine Java-Themen 2
S XML-Parsing / public-Member-Variablen / Design-Frage Allgemeine Java-Themen 8
M Variablen Speicher wieder freigeben ? Allgemeine Java-Themen 9
S In Subklasse auf private Variablen zugreifen Allgemeine Java-Themen 4
S Variablen und ihre Tücken. Allgemeine Java-Themen 7
C Binärbereich einer Variablen abfragen Allgemeine Java-Themen 8
J Zugriff auf den Namen einer Variablen Allgemeine Java-Themen 7
J Überschreiben von Variablen Allgemeine Java-Themen 3
C dynamische variablen Namen! Allgemeine Java-Themen 4
M Int und String Variablen verändern Allgemeine Java-Themen 10
H zwei Date Variablen überschreiben sich Allgemeine Java-Themen 2
G Taushen der Input variablen einer method Allgemeine Java-Themen 14
P Objekt- Variablen Allgemeine Java-Themen 16
K Environment Variablen per java -D weitergeben Allgemeine Java-Themen 9
D in class-Dateien nach variablen suchen! Allgemeine Java-Themen 5
F Werte von Member-Variablen erst im Konstruktor setzen? Allgemeine Java-Themen 7
T Größe eine Variablen in Bytes? Allgemeine Java-Themen 22
B Reguläre ausdrücke mit variablen? Allgemeine Java-Themen 12
MQue JButton an verschiedenen Variablen Allgemeine Java-Themen 2
T Unabhängigkeit von Variablen/ Objekten. Allgemeine Java-Themen 6
G Frage zu statischen Variablen bei Vererbung Allgemeine Java-Themen 15
L Sichtbarkeit von Variablen / getMethode Allgemeine Java-Themen 4
H Variablen (A1, A2, A3 mit A_irgendetwas aufrufen) ohne Array Allgemeine Java-Themen 5
M Variablen in einer .doc Vorlage ersetzen Allgemeine Java-Themen 4
A Reflection - Variablen innerhalb einer Methode ermitteln Allgemeine Java-Themen 9
E Zugriff auf Variablen äusserer Klassen Allgemeine Java-Themen 2
M Variablen in Klasse verpacken? Allgemeine Java-Themen 10
F Allegemeiner Datentyp für Objekte und Primitive Variablen Allgemeine Java-Themen 6
W Array mit Variablen aus Vararg füllen Allgemeine Java-Themen 4
S Problem mit Boolean Variablen Allgemeine Java-Themen 8
A [SOLVED] Classpath und statische Variablen Allgemeine Java-Themen 6
J variablen wert ändernung mit einer art actionlistener? Allgemeine Java-Themen 4
C klassenübergreifende variablen Allgemeine Java-Themen 3
J 28 Variablen vergleichen und die höchsten addieren Allgemeine Java-Themen 15
T ungewollter Zugriff auf private Variablen? Allgemeine Java-Themen 3

Ähnliche Java Themen

Neue Themen


Oben