Ich habe folgende Paketstruktur und Klassen.
%Vor%Ich habe das ClassC-Objekt und versuche, fieldX über Reflektion zu erhalten.
%Vor%Aber ich bekomme NoSuchMethod Ausnahme.
Ich habe auch versucht, das fieldX direkt zu erreichen. Aber diesmal bekomme ich NoSuchField Exception.
%Vor%Was mache ich falsch? Gibt es eine Möglichkeit, dieses Feld vom ClassC-Objekt zu erhalten?
Lösung: (Vielen Dank vz0 für die Lösung);
Direkter Zugriff auf privates Feld:
%Vor%Methodenaufruf;
%Vor% Der Class.getMethod
-Aufruf gilt nur für öffentliche Methoden. Sie müssen den Aufruf Class.getDeclaredMethod
verwenden und dann die Eigenschaft Method.setAccessible
auf true setzen:
BEARBEITEN: Da die Methode getFieldX
für ClassA
deklariert ist, müssen Sie die Methode von ClassA und nicht von ClassC abrufen. Im Gegensatz zu getMethod
call rufen Sie% code_de% auf ignoriert Superklassen .
Tags und Links java reflection