Legen Sie den privaten Feldwert mit Reflektion festJava

Java-Forum
Guest
 Legen Sie den privaten Feldwert mit Reflektion fest

Post by Guest »

Ich habe zwei Klassen: Vater und Kind

Code: Select all

public class Father implements Serializable, JSONInterface {

private String a_field;

//setter and getter here

}

public class Child extends Father {
//empty class
}
Mit Reflection möchte ich ein_Feld in der Child-Klasse festlegen:

Code: Select all

Class clazz = Class.forName("Child");
Object cc = clazz.newInstance();

Field f1 = cc.getClass().getField("a_field");
f1.set(cc, "reflecting on life");
String str1 = (String) f1.get(cc.getClass());
System.out.println("field: " + str1);
aber ich habe eine Ausnahme:


Ausnahme im Thread „main“ Java .lang.NoSuchFieldException: a_field


Aber wenn ich es versuche:

Code: Select all

Child child = new Child();
child.setA_field("123");
es funktioniert.

Mit der Setter-Methode habe ich das gleiche Problem:

Code: Select all

method = cc.getClass().getMethod("setA_field");
method.invoke(cc, new Object[] { "aaaaaaaaaaaaaa" });

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post