/* package whatever; // don't place package name! */
import java.util.*;
import java.lang.*;
import java.lang.reflect.*;
import java.io.*;
/* Name of the class has to be "Main" only if the class is public. */
class Ideone
{
Class dc = m.getDeclaringClass();
for (Class bc : dc.getInterfaces()) {
try {
return bc.getMethod(m.getName(), m.getParameterTypes());
}
}
return m;
}
{
Map
<String,Object
> someMap
= new LinkedHashMap
<>();someMap.put("someKey", "someValue");
Map.
Entry<String,Object
> entry
= someMap.
entrySet().
iterator().
next();
System.
out.
println(entry.
getValue()); // normal access is fine
Method getter
= tryFindInterfaceMethod
(entry.
getClass().
getMethod("getValue")); System.
out.
println(getter.
invoke(entry
)); //2
}
}
LyogcGFja2FnZSB3aGF0ZXZlcjsgLy8gZG9uJ3QgcGxhY2UgcGFja2FnZSBuYW1lISAqLwoKaW1wb3J0IGphdmEudXRpbC4qOwppbXBvcnQgamF2YS5sYW5nLio7CmltcG9ydCBqYXZhLmxhbmcucmVmbGVjdC4qOwppbXBvcnQgamF2YS5pby4qOwoKLyogTmFtZSBvZiB0aGUgY2xhc3MgaGFzIHRvIGJlICJNYWluIiBvbmx5IGlmIHRoZSBjbGFzcyBpcyBwdWJsaWMuICovCmNsYXNzIElkZW9uZQp7Cglwcml2YXRlIHN0YXRpYyBNZXRob2QgdHJ5RmluZEludGVyZmFjZU1ldGhvZChNZXRob2QgbSkgdGhyb3dzIEV4Y2VwdGlvbiB7CgkgICAgQ2xhc3MgZGMgPSBtLmdldERlY2xhcmluZ0NsYXNzKCk7CgkgICAgZm9yIChDbGFzcyBiYyA6IGRjLmdldEludGVyZmFjZXMoKSkgewoJICAgICAgICB0cnkgewoJCXJldHVybiBiYy5nZXRNZXRob2QobS5nZXROYW1lKCksIG0uZ2V0UGFyYW1ldGVyVHlwZXMoKSk7CgkgICAgICAgIH0gY2F0Y2ggKE5vU3VjaE1ldGhvZEV4Y2VwdGlvbiBpZ25vcmUpIHsKCSAgICAgICAgfQoJICAgIH0KCSAgICByZXR1cm4gbTsKCX0KCXB1YmxpYyBzdGF0aWMgdm9pZCBtYWluIChTdHJpbmdbXSBhcmdzKSB0aHJvd3MgamF2YS5sYW5nLkV4Y2VwdGlvbgoJewoKTWFwPFN0cmluZyxPYmplY3Q+IHNvbWVNYXAgPSBuZXcgTGlua2VkSGFzaE1hcDw+KCk7CnNvbWVNYXAucHV0KCJzb21lS2V5IiwgInNvbWVWYWx1ZSIpOwpNYXAuRW50cnk8U3RyaW5nLE9iamVjdD4gZW50cnkgPSBzb21lTWFwLmVudHJ5U2V0KCkuaXRlcmF0b3IoKS5uZXh0KCk7CgpTeXN0ZW0ub3V0LnByaW50bG4oZW50cnkuZ2V0VmFsdWUoKSk7IC8vIG5vcm1hbCBhY2Nlc3MgaXMgZmluZQoKTWV0aG9kIGdldHRlciA9IHRyeUZpbmRJbnRlcmZhY2VNZXRob2QoZW50cnkuZ2V0Q2xhc3MoKS5nZXRNZXRob2QoImdldFZhbHVlIikpOwpTeXN0ZW0ub3V0LnByaW50bG4oZ2V0dGVyLmludm9rZShlbnRyeSkpOyAvLzIgCgoKCX0KfQ==