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 {
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()); }
}
aW1wb3J0IGphdmEubGFuZy5yZWZsZWN0Lio7CgpjbGFzcyBSZWZTYW1wIHsKIHB1YmxpYyBpbnQgdGltZXMgPSAwOwoKIHB1YmxpYyBSZWZTYW1wKGludCB0KSB7CiAgdGhpcy50aW1lcyA9IHQ7CiB9CgogcHVibGljIHZvaWQgaGVsbG8oU3RyaW5nIG1zZykgewogIHRoaXMuaGVsbG8obXNnLCB0aGlzLnRpbWVzKTsKIH0KIHB1YmxpYyB2b2lkIGhlbGxvKFN0cmluZyBtc2csIGludCB0KSB7CiAgU3lzdGVtLm91dC5wcmludGxuKCJIZWxsbywgIiArIG1zZyArICIgeCAiICsgdCk7CiB9Cn0KCnB1YmxpYyBjbGFzcyBNYWluIHsKIHB1YmxpYyBzdGF0aWMgdm9pZCBtYWluKFN0cmluZ1tdIGFyZ3MpIHRocm93cyBFeGNlcHRpb24gewogIENsYXNzIGNsYXp6ID0gUmVmU2FtcC5jbGFzczsKCiAgQ29uc3RydWN0b3I8Pz4gY29ucyA9IGNsYXp6LmdldENvbnN0cnVjdG9yKGludC5jbGFzcyk7CiAgUmVmU2FtcCBycyA9IChSZWZTYW1wKSBjb25zLm5ld0luc3RhbmNlKDI1Nik7CgogIEZpZWxkIGYgPSBjbGF6ei5nZXRGaWVsZCgidGltZXMiKTsKICBmLnNldChycywgMik7CiAgU3lzdGVtLm91dC5wcmludGxuKGYuZ2V0KHJzKSk7CgogIE1ldGhvZCBtID0gY2xhenouZ2V0TWV0aG9kKCJoZWxsbyIsIFN0cmluZy5jbGFzcywgaW50LmNsYXNzKTsKICBtLmludm9rZShycywgInJlZnJlY3Rpb24hIiwgMTI4KTsKCiAgYm9vbGVhbiBwdWJjID0gTW9kaWZpZXIuaXNQdWJsaWMoY2xhenouZ2V0TW9kaWZpZXJzKCkpOwogIGJvb2xlYW4gZmlubSA9IE1vZGlmaWVyLmlzRmluYWwobS5nZXRNb2RpZmllcnMoKSk7CiB9Cn0=