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()); }
}
aW1wb3J0IGphdmEubGFuZy5yZWZsZWN0Lio7CmNsYXNzIFJlZlNhbXAgewogICAgcHVibGljIGludCB0aW1lcyA9IDA7CiAgICBwdWJsaWMgUmVmU2FtcChpbnQgdCkgewogICAgICAgIHRoaXMudGltZXMgPSB0OwogICAgfQogICAgcHVibGljIHZvaWQgaGVsbG8oU3RyaW5nIG1zZykgewogICAgICAgIHRoaXMuaGVsbG8obXNnLCB0aGlzLnRpbWVzKTsKICAgIH0KICAgIHB1YmxpYyB2b2lkIGhlbGxvKFN0cmluZyBtc2csIGludCB0KSB7CiAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCJIZWxsbywgIiArIG1zZyArICIgeCAiICsgdCk7CiAgICB9Cn0KCnB1YmxpYyBjbGFzcyBNYWluIHsKICAgIHB1YmxpYyBzdGF0aWMgdm9pZCBtYWluKFN0cmluZ1tdIGFyZ3MpIHRocm93cyBFeGNlcHRpb24gewogICAgICAgIENsYXNzIGNsYXp6ID0gUmVmU2FtcC5jbGFzczsKICAgICAgICBDb25zdHJ1Y3Rvcjw/PiBjb25zID0gY2xhenouZ2V0Q29uc3RydWN0b3IoaW50LmNsYXNzKTsKICAgICAgICBSZWZTYW1wIHJzID0gKFJlZlNhbXApIGNvbnMubmV3SW5zdGFuY2UoMjU2KTsKICAgICAgICBGaWVsZCBmID0gY2xhenouZ2V0RmllbGQoInRpbWVzIik7CiAgICAgICAgZi5zZXQocnMsIDIpOwogICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbihmLmdldChycykpOwogICAgICAgIE1ldGhvZCBtID0gY2xhenouZ2V0TWV0aG9kKCJoZWxsbyIsIFN0cmluZy5jbGFzcywgaW50LmNsYXNzKTsKICAgICAgICBtLmludm9rZShycywgInJlZnJlY3Rpb24hIiwgMTI4KTsKICAgICAgICBib29sZWFuIHB1YmMgPSBNb2RpZmllci5pc1B1YmxpYyhjbGF6ei5nZXRNb2RpZmllcnMoKSk7CiAgICAgICAgYm9vbGVhbiBmaW5tID0gTW9kaWZpZXIuaXNGaW5hbChtLmdldE1vZGlmaWVycygpKTsKICAgIH0KfQ==