Hallo,
ist es mit java.lang.reflect möglich auf eine geerbte protected Variable zuzugreifen?
Ich hab zwei Klassen "AnAbstractClass" und "AClass":
Nun möchte ich von ausserhalb auf die Variable "abstractField" in AnAbstractClass über AClass zugreifen. Ich weiß das ich auf alle in der Klasse deklarierten Variablen über Class.getDeclaredField() zugreifen kann. Für die variable "field" würde das so aussehen:
Jedoch für die geerbte Variable geht das nicht. Führe ich den untenstehenden Code aus, wird mir gesagt das es die Klassenvariable "abstractField" nicht gibt.
Mit der Methode getField() kann man leider nur auf die public Variablen zugreifen!?
Das geht - aber icht mit der protected Variable.
Gibt es eine Möglichkeit auf die Variable "abstractField" über das Class- Object der Klasse AClass zuzugreifen?
ist es mit java.lang.reflect möglich auf eine geerbte protected Variable zuzugreifen?
Ich hab zwei Klassen "AnAbstractClass" und "AClass":
Code:
public class AnAbstractClass
{
protected int abstractField;
public int publicAbstractField;
public int getAbstractField() {
return abstractField;
}
public void setAbstractField(int abstractField) {
this.abstractField = abstractField;
}
}
Code:
public class AClass extends AnAbstractClass
{
private int field;
public AClass(int field) {
super();
this.field = field;
}
public int getField() {
return field;
}
public void setField(int field) {
this.field = field;
}
}
Nun möchte ich von ausserhalb auf die Variable "abstractField" in AnAbstractClass über AClass zugreifen. Ich weiß das ich auf alle in der Klasse deklarierten Variablen über Class.getDeclaredField() zugreifen kann. Für die variable "field" würde das so aussehen:
Code:
AClass aClass = new AClass(42);
Field field = aClass.getClass().getDeclaredField("field");
Jedoch für die geerbte Variable geht das nicht. Führe ich den untenstehenden Code aus, wird mir gesagt das es die Klassenvariable "abstractField" nicht gibt.
Code:
Field field = aClass.getClass().getDeclaredField("abstractField");
Mit der Methode getField() kann man leider nur auf die public Variablen zugreifen!?
Code:
Field field = aClass.getClass().getField("publicAbstractField");
Gibt es eine Möglichkeit auf die Variable "abstractField" über das Class- Object der Klasse AClass zuzugreifen?