Reflection API - getter und setter

Status
Nicht offen für weitere Antworten.

vodn7v

Bekanntes Mitglied
hallo,
ich habe mich jetzt schon ein bischen mit der reflection api auseinander gesetzt. leider weiss ich jetzt nicht weiter.. ich kann mir aus der mir übergebenen klasse alle methoden auslesen und meine passenden raussuchen.

ich habe dort getter und setter methoden in der übergebenen klasse die vorher per "set" gesetzt werden.
wie kann ich jetzt den inhalt der methoden auslesen die vorher gesetzt wurden ?

über ein invole kann ich die werte setzen, wie komme ich jedoch mit der getMethode an meinen wert ran ??


danke euch !!
 
S

SlaterB

Gast
über den Rückgabewert von invoke() (bei Aufruf eines getters)?
 

vodn7v

Bekanntes Mitglied
also ich habe die setter immer so ausgeführt:

[HIGHLIGHT="Java"]Class[] paraString = new Class[1];
paraString[0] = String.class;
Object[] argsForsetFlag = new Object[] {tFlag};
c.getMethod("set_tfFag",paraString).invoke(cTableClass,argsForsetFlag);[/HIGHLIGHT]
so habe ich die setter gefüllt. aber also returntype von der getter habe ich ein Class objekt. wenn ich es so mache:

[HIGHLIGHT="Java"]Object test = c.getMethod("get_tfFag",paraString).invoke(cTableClass,argsForsetFlag);[/HIGHLIGHT]
kann ich nicht über das testobjekt den get wert holen.

hmm..
 
Zuletzt bearbeitet von einem Moderator:

vodn7v

Bekanntes Mitglied
ich arbeite doch mit javabeans =)
problem ist nur das ich vorher meine klasse nicht kenne =)
ich lese zurvor meine methoden mit c.getMethods.getName(); aus. vergleiche die methoden mit gettermethoden die (mit der gleichnamigen setter)gefüllt wurden. dann weiss ich welche getter gefüllt sind. jetzt muss ich mit hilfe der reflection api daten auslesen.

ich kann halt vorher noch kein objekt meiner klasse erstellen und die methode wie üblich nutzen da ich vorher ja noch nicht weiss wie die klasse aussieht =)

geht es denn überhaupt was ich vorhabe ??

ich muss irgednwie auf die getter zugreifen und den returnwert entgegen nehmen. weiss nur nicht wie =)

über invoke().getReturnType und ähnliche aufrufe bekomme ich zwar details welcher typ etc zurückgegeben wird. jedoch nicht den wert an sich.


jemand noch ne idee ??


danke !!
 
S

SlaterB

Gast
was spricht dagegen, in normalen verständlich ausführlichen Sätzen das Problem auch zu beschreiben
und vielleicht noch Code dazu zur Verfügung zu stellen?

> Object test = c.getMethod("get_tfFag",paraString).invoke(cTableC lass,argsForsetFlag);
>
> kann ich nicht über das testobjekt den get wert holen.

WAS funktioniert daran nicht? Compilerfehler, Exception, test ist am Ende falscher Wert?
du sagst nichts und nu?
..

---------

schauen wir uns ein ganz simples Beispiel an:
Code:
public class Test
{
    private String tfFag;
 
    public String get_tfFag()
    {
        return this.tfFag;
    }
 
    public void set_tfFag(String tfFag)
    {
        this.tfFag = tfFag;
    }
 
    public static void main(String[] args)
        throws Exception
    {
        Object cTableClass = new Test();
        String tFlag = "Hello World";
        Class c = cTableClass.getClass();
        Class[] paraString = new Class[1];
        paraString[0] = String.class;
 
        Object[] argsForsetFlag = new Object[] {tFlag};
        c.getMethod("set_tfFag", paraString).invoke(cTableClass, argsForsetFlag);
        Object test = c.getMethod("get_tfFag",paraString).invoke(cTableC lass,argsForsetFlag);
        System.out.println("test ist: " + test + ", " + test.getClass());
    }
}
die Programm-Ausgabe
Exception in thread "main" java.lang.NoSuchMethodException: test.Test.get_tfFag(java.lang.String)
at java.lang.Class.getMethod(Class.java:1581)
at test.Test.main(Test.java:41)
ist verständlich, denn erstens wird der getter doch ganz sicher keinen String-Parameter haben
und zweitens wäre es seltsam, genau wieder argsForsetFlag mit 'Hello World' zu übergeben, man möchte doch den Wert auslesen,

dass du dies falsch verwendest ist kein Beinbruch,
dass du die entsprechende Fehlermeldung oder sonstige Reaktion des Programms nicht genau erklärst, verwundert mich,

mit dem korrekten Aufruf
Object test = c.getMethod("get_tfFag").invoke(cTableClass);

kommt dagegen die ganz normale Ausgabe
test ist: Hello World, class java.lang.String
 
Zuletzt bearbeitet von einem Moderator:
M

maki

Gast
>> ich kann halt vorher noch kein objekt meiner klasse erstellen und die methode wie üblich nutzen da ich vorher ja noch nicht weiss wie die klasse aussieht =)

Vielleciht hilft dir Dozer?
 

Schandro

Top Contributor
Liegts vllt. daran, dass du vergessen hast das du das Object, das invoke returnt, ohne Probleme zu dem casten kannst was die Methode eigentlich returnen sollte?
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
I Reflection: Suche Feld + in Unterklassen Java Basics - Anfänger-Themen 7
B Reflection ändern von Objekten in Objekten Java Basics - Anfänger-Themen 12
G Vererbung Sicherheitslücke? Reflection sieht members, die nicht sichtbar sein sollten?! Java Basics - Anfänger-Themen 11
S reflection und felder Java Basics - Anfänger-Themen 12
B .class-File mit Reflection auslesen Java Basics - Anfänger-Themen 8
X Parameterübergabe per Reflection Java Basics - Anfänger-Themen 10
U Reflection Benutzung Java Basics - Anfänger-Themen 2
J Reflection Java Basics - Anfänger-Themen 6
B Reflection Java Basics - Anfänger-Themen 8
S Datentypen Reflection Cast anhand eines Strings? Java Basics - Anfänger-Themen 7
X reflection api Java Basics - Anfänger-Themen 5
R Alle Klassen ermitteln, die Interface implementieren / Reflection Java Basics - Anfänger-Themen 51
lumo java reflection Java Basics - Anfänger-Themen 7
J Reflection Java Basics - Anfänger-Themen 2
J Reflection Java Basics - Anfänger-Themen 3
P Reflection - Class Not Found Exception Java Basics - Anfänger-Themen 3
A Frage zu Reflection Java Basics - Anfänger-Themen 8
A abgeleitete Klassen mit Reflection holen Java Basics - Anfänger-Themen 2
M Reflection Java Basics - Anfänger-Themen 8
W Problem bezüglich reflection Java Basics - Anfänger-Themen 11
S verschiede constructoren über reflection Java Basics - Anfänger-Themen 3
JFeel-x Frage zu reflection Java Basics - Anfänger-Themen 12
J Reflection Basic Java Basics - Anfänger-Themen 26
C Reflection Exceptions behandeln Java Basics - Anfänger-Themen 6
T von Reflection zum Thread? Java Basics - Anfänger-Themen 5
G Vorteile Reflection bezüglich MVC-Pattern Java Basics - Anfänger-Themen 9
G Reflection - Klasse laden aus anderem Verzeichnis Java Basics - Anfänger-Themen 4
L Reflection-fehlermeldung Java Basics - Anfänger-Themen 12
E Klassenaufrufe dynamisch mit Reflection Java Basics - Anfänger-Themen 4
S wer oder was ist reflection? Java Basics - Anfänger-Themen 11
T Getter/Setter - wie sieht ein Setter aus? Und wie nicht? Java Basics - Anfänger-Themen 34
Say Class scope und Instance scope und Getter nur selbstgeschrieben Methoden Java Basics - Anfänger-Themen 11
W Getter/Setter Java Basics - Anfänger-Themen 4
W Unterschiede bei Zugriff auf Objekt und Klassenvariablen über einen Getter? Java Basics - Anfänger-Themen 2
KogoroMori21 Objektvariable anderer Klasse übernehmen, Getter/Setter Java Basics - Anfänger-Themen 11
T Verständnisfrage Objekt Getter Setter Java Basics - Anfänger-Themen 102
KogoroMori21 Getter und Setter Java Basics - Anfänger-Themen 5
O Instanzattribut per Getter Methode zuweisbar, warum? Java Basics - Anfänger-Themen 8
P Klassenübergreifende Ausgabe mittels "getter" nicht möglich Java Basics - Anfänger-Themen 21
J Array über Getter erlangen Java Basics - Anfänger-Themen 34
S Klassen instanziieren und verwenden von Getter und Setter Java Basics - Anfänger-Themen 4
P Klasse hat keinen Zugriff auf getter/setter-Methoden eines Objektes Java Basics - Anfänger-Themen 9
V getter/setter Garage Java Basics - Anfänger-Themen 12
M Getter einer PriorityQueue Java Basics - Anfänger-Themen 1
KopaCoda Getter mehrfach aufrufen -> ist das guter code? Java Basics - Anfänger-Themen 3
V Getter Methode Java Basics - Anfänger-Themen 38
S getter, setter in abstrakter Klasse oder lieber Unterklassen Java Basics - Anfänger-Themen 4
topi Kapselung getter und setter Java Basics - Anfänger-Themen 5
D Setter/Getter für Instanzvariablen praktisch? Java Basics - Anfänger-Themen 19
S Getter/Setter - Variablenklasse ? Java Basics - Anfänger-Themen 5
S getter and setter Java Basics - Anfänger-Themen 12
L Getter und Setter Java Basics - Anfänger-Themen 2
T Extrahiertes Objekt durch Getter bekommen Java Basics - Anfänger-Themen 2
M Generics getter und setter Methoden Java Basics - Anfänger-Themen 4
D Kapselung final Variablen mit Getter? Java Basics - Anfänger-Themen 2
A getter Java Basics - Anfänger-Themen 3
E Methoden Objekte in Methode aufrufen ohne getter und setter? Java Basics - Anfänger-Themen 1
T Getter für Array Java Basics - Anfänger-Themen 4
J-Gallus Ein Getter bekommt eine anderen Type als er Return soll Java Basics - Anfänger-Themen 9
K Public Attribute oder getter - funktioniert leider beides hier nicht Java Basics - Anfänger-Themen 5
L Klassen - Getter & Setter Methoden Java Basics - Anfänger-Themen 2
D Erste Schritte Java - Setter und Getter Java Basics - Anfänger-Themen 1
Z Getter/Setter NullPointer Exception Java Basics - Anfänger-Themen 6
P getter Java Basics - Anfänger-Themen 1
K Klassen Setter/Getter Java Basics - Anfänger-Themen 3
F OOP Schleifen und Probleme mit Setter und Getter Java Basics - Anfänger-Themen 1
L Setter und Getter/Vererbung Java Basics - Anfänger-Themen 6
M Getter Problematik mit ItemListener Java Basics - Anfänger-Themen 17
K Kapselung getter & setter Java Basics - Anfänger-Themen 11
S Array und Getter-Methode Java Basics - Anfänger-Themen 2
Avarion Getter von Super-Klasse funktioniert nicht Java Basics - Anfänger-Themen 10
J Frage zu Setter u. Getter Java Basics - Anfänger-Themen 7
T Variablen Getter-Setter vs Public Variable? Java Basics - Anfänger-Themen 5
Y Konstruktor - Setter/Getter Java Basics - Anfänger-Themen 3
N Klassen fragen zur getter und setter methode Java Basics - Anfänger-Themen 11
D Ab wann getter und setter Java Basics - Anfänger-Themen 2
J Variable per Getter holen - wie ? Java Basics - Anfänger-Themen 2
K getter & setter Java Basics - Anfänger-Themen 6
C getter/setter Problem anscheinend Java Basics - Anfänger-Themen 13
D Getter Mehtode Unsicher Java Basics - Anfänger-Themen 6
G Erste Schritte Getter und Setter Java Basics - Anfänger-Themen 12
B Getter,Setter - Konstruktor überflüssig? Java Basics - Anfänger-Themen 26
N Sprite Methode (Getter, Setter, Konstruktor) Java Basics - Anfänger-Themen 9
S getter/setter aufrufen Java Basics - Anfänger-Themen 9
B Java getter/setter funktioniert nicht! Java Basics - Anfänger-Themen 7
X OOP Getter/Setter überschreiben den Wert ihrer Variablen nicht Java Basics - Anfänger-Themen 4
T Erste Schritte Verständnisfrage: Getter und Setter Methoden Java Basics - Anfänger-Themen 3
M Problem mit getter, liefert nur alte Werte Java Basics - Anfänger-Themen 6
V public Variablen vs Getter + Setter Java Basics - Anfänger-Themen 4
F Getter und Setter Java Basics - Anfänger-Themen 4
lulas[]args getter/setter umstellung Java Basics - Anfänger-Themen 6
El_Lobo Methoden Zu viele Getter- und Settermethoden - geht das einfacher? Java Basics - Anfänger-Themen 3
G Generics kein Zugriff auf getter eines Objekts Java Basics - Anfänger-Themen 4
B Klassen Getter-Setter vor neuem Klassenaufruf - wie? Java Basics - Anfänger-Themen 20
M OOP Aufruf vieler Getter Methoden abkürzen? Java Basics - Anfänger-Themen 7
N OOP Getter, Setter und andere Probleme Java Basics - Anfänger-Themen 8
A OOP Getter und Setter Java Basics - Anfänger-Themen 18
MU5T4NG Getter und Setten bei GUI-Erstellung Java Basics - Anfänger-Themen 13
B Variablen keine Arrayübergabe für getter im Interface Java Basics - Anfänger-Themen 8
L Unterschied Konstruktor / Getter Setter Java Basics - Anfänger-Themen 13

Ähnliche Java Themen

Neue Themen


Oben