<dependency>
<groupId>com.esotericsoftware</groupId>
<artifactId>reflectasm</artifactId>
<version>1.11.8</version>
</dependency>
import com.esotericsoftware.reflectasm.FieldAccess;
import com.esotericsoftware.reflectasm.MethodAccess;
public class PersonAccessor {
private static final MethodAccess methodAccess = MethodAccess.get(Person.class);
private static final FieldAccess fieldAccess = FieldAccess.get(Person.class);
public static String getName(Person person) {
return (String) methodAccess.invoke(person, "getName");
}
public static void setName(Person person, String name) {
fieldAccess.set(person, "name", name);
}
}
Person person = new Person();
PersonAccessor.setName(person, "John Doe");
String name = PersonAccessor.getName(person);