java 提取变量名中的数字 比如说变量a1,a2,a3 我如何用一个int来接收1,2,3

变量名a1,a2,a3...是递增的图片说明
比如说上面这张图 假设这个变量名有50个 我需要对每个变量名判断太麻烦了
可能我脑子短路 目前就想获取变量名的数字
或者有什么好的思路 求大大指点

import java.lang.reflect.Method;

public class Test1 {
public static void main(String[] args) throws Exception, SecurityException {
Ea ea = new Ea();

    // 通过对象得到字节码
    Class clazz = ea.getClass();

    // 循环反射
    for(int i=1;i<4;i++){
        Method m = clazz.getMethod("getState"+i);
        System.out.println(m.invoke(ea));   // 执行方法
    }
}

}
class Ea {
public String getState1(){
return "1";
}
public String getState2(){
return "2";
}
public String getState3(){
return "3";
}
}

java中局部变量的名称是获取不到的吧 而成员变量可以用反射的方式获取 也不可取 你还是想想其他的方法

建议 参考一下反射

利用java反射遍历变量名来取值

 public static void main(String[] args) {
        EaTest ea = new EaTest();
        ea.setState1("1");
        ea.setState2("2");
        ea.setState3("3");
        ea.setState4("4");
        ea.setState5("5");
        Method[] methods = ea.getClass().getDeclaredMethods();
        try {
            for (int i = 1;i<=5;i++){
                String fieldName = "state" + i;
                String getMethodName = "get" + fieldName.substring(0,1).toUpperCase() + fieldName.substring(1); 
                for (Method method : methods) {
                    if (method.getName().equals(getMethodName)) {
                        if (method.invoke(ea, new Object[]{}) != null 
                                && method.invoke(ea, new Object[]{}).toString().length() != 0) {
                            System.out.println(method.invoke(ea, new Object[] {}).toString());
                        } else {

                        }
                    }
                }
            }
        } catch (Exception e) {

        }
    }