class A {
public static int field = 99;
}
class B {
public static A field = new A();
}
class C {
public static B field = new B();
}
public class Main
{
public static String foo
(Class
<?> clazz,
String fieldName,
int n
) {
for (int i = 0; i < n - 1; ++i)
{
clazz = clazz.getField(fieldName).get(null).getClass();
}
return clazz.getField(fieldName).get(null).toString();
}
public static void main
(String[] args
) {
System.
out.
println(foo
(C.
class,
"field",
1)); System.
out.
println(foo
(C.
class,
"field",
2)); System.
out.
println(foo
(C.
class,
"field",
3)); }
}
Y2xhc3MgQSB7CiAgICBwdWJsaWMgc3RhdGljIGludCBmaWVsZCA9IDk5Owp9CmNsYXNzIEIgewogICAgcHVibGljIHN0YXRpYyBBIGZpZWxkID0gbmV3IEEoKTsKfQpjbGFzcyBDIHsKICAgIHB1YmxpYyBzdGF0aWMgQiBmaWVsZCA9IG5ldyBCKCk7Cn0KCnB1YmxpYyBjbGFzcyBNYWluCnsKICAgIHB1YmxpYyBzdGF0aWMgU3RyaW5nIGZvbyhDbGFzczw/PiBjbGF6eiwgU3RyaW5nIGZpZWxkTmFtZSwgaW50IG4pCiAgICAgICAgdGhyb3dzIE5vU3VjaEZpZWxkRXhjZXB0aW9uLCBJbGxlZ2FsQWNjZXNzRXhjZXB0aW9uCiAgICB7CiAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBuIC0gMTsgKytpKQogICAgICAgIHsKICAgICAgICAgICAgY2xhenogPSBjbGF6ei5nZXRGaWVsZChmaWVsZE5hbWUpLmdldChudWxsKS5nZXRDbGFzcygpOwogICAgICAgIH0KCiAgICAgICAgcmV0dXJuIGNsYXp6LmdldEZpZWxkKGZpZWxkTmFtZSkuZ2V0KG51bGwpLnRvU3RyaW5nKCk7CiAgICB9CgogICAgcHVibGljIHN0YXRpYyB2b2lkIG1haW4oU3RyaW5nW10gYXJncykKICAgICAgICB0aHJvd3MgTm9TdWNoRmllbGRFeGNlcHRpb24sIElsbGVnYWxBY2Nlc3NFeGNlcHRpb24KICAgIHsKICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oZm9vKEMuY2xhc3MsICJmaWVsZCIsIDEpKTsKICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oZm9vKEMuY2xhc3MsICJmaWVsZCIsIDIpKTsKICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oZm9vKEMuY2xhc3MsICJmaWVsZCIsIDMpKTsKICAgIH0KfQo=