Methods[] method =classname.getClass().getDeclaredMethods();
在上面的代码中,我想获得特定方法的值。假设上面的方法将返回一些getter和setter方法。我们能获得任何getter方法的价值吗?
答案 0 :(得分:1)
就像PeterMmm所说,你可以使用方法调用,传递你想要进行调用的对象,以及方法需要的任何其他参数,因为get方法通常没有参数,你可以做像这样:
import java.lang.reflect.InvocationTargetException;
import java.lang.reflect.Method;
public class MethodsTest {
public int getA() {
return 5;
}
public int getB() {
return 8;
}
public static void main(String[] args) {
MethodsTest obj = new MethodsTest();
Method[] methods = obj.getClass().getDeclaredMethods();
for (Method method: methods) {
if (method.getName().startsWith("get"))
try {
System.out.println(method.getName() + ": " + method.invoke(obj));
} catch (IllegalAccessException | IllegalArgumentException | InvocationTargetException e) {
e.printStackTrace();
}
}
}
}
它会打印出来:
getB: 8
getA: 5
希望有所帮助