import java.lang.reflect.*; class RefSamp { public int times = 0; public RefSamp(int t) { this.times = t; } public void hello(String msg) { this.hello(msg, this.times); } public void hello(String msg, int t) { System.out.println("Hello, " + msg + " x " + t); } }
public class Main { public static void main(String[] args) throws Exception { Class clazz = RefSamp.class; Constructor<?> cons = clazz.getConstructor(int.class); RefSamp rs = (RefSamp) cons.newInstance(256); Field f = clazz.getField("times"); f.set(rs, 2); System.out.println(f.get(rs)); Method m = clazz.getMethod("hello", String.class, int.class); m.invoke(rs, "refrection!", 128); boolean pubc = Modifier.isPublic(clazz.getModifiers()); boolean finm = Modifier.isFinal(m.getModifiers()); } }