我们可以通过使用Methods []提取任何getter方法的值来获取它吗?

时间:2016-09-06 10:22:08

标签: java methods

 Methods[] method =classname.getClass().getDeclaredMethods();

在上面的代码中,我想获得特定方法的值。假设上面的方法将返回一些getter和setter方法。我们能获得任何getter方法的价值吗?

1 个答案:

答案 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

希望有所帮助