Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/401.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/223.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Android中的反射?_Java_Android - Fatal编程技术网

Java Android中的反射?

Java Android中的反射?,java,android,Java,Android,我有点被当前的Android应用程序项目卡住了,问题是我的AppPreference类中有84个变量,现在我需要一次获取所有这些变量,创建包并通过蓝牙发送,我想也许反射可以帮助我做到这一点,以下是我正在尝试做的: 1.-用我的i和j变量构建一个字符串: for(int i=1;i <= 7;i++){ for(int j = 1;j <=4;j++){ String func ="getD"+i+"t"+j+"h"; }

我有点被当前的Android应用程序项目卡住了,问题是我的AppPreference类中有84个变量,现在我需要一次获取所有这些变量,创建包并通过蓝牙发送,我想也许反射可以帮助我做到这一点,以下是我正在尝试做的:

1.-用我的i和j变量构建一个字符串:

for(int i=1;i <= 7;i++){
            for(int j = 1;j <=4;j++){

                String func ="getD"+i+"t"+j+"h";

  }
}
3.-类的实例称为_appPreferences:

_appPrefs = new AppPreferences(getContext().getApplicationContext());
public static void main(String[] args) {
  AppPreferences preferences = new AppPreferences();
  for(int i=1;i <= 7;i++){
    for(int j = 1;j <=4;j++){
      try {
        String func ="getD"+i+"t"+j+"h";
        Method method = AppPreferences.class.getMethod(func);
        Object result = method.invoke(preferences);
        System.out.print(result);
      } catch (Exception e) {
        System.err.print(".");
      }
    }
}
4.-我想这样做:

public void syncData(){

        for(int i=1;i <= 7;i++){
            for(int j = 1;j <=4;j++){

                String func ="getD"+i+"t"+j+"h";
                String temp = _appPrefs.func;
            }
        }
    }
public void syncData(){
对于(int i=1;i让我们假设您有:

  class AppPreferences {
    public void d2t3h() {
      System.out.println("helo");
    }
  }
然后尝试下一个代码(工作示例,我使用了静态嵌套类AppPreferences):


需要这种方法吗?为什么不使用map或list并添加适当的逻辑来简化您想要做的事情。
HashMap
?HashMap…???类似的东西有什么问题?我如何填充HashMap?它也需要类似的东西?问题是,所有这些值都需要为用户每t保存一次当他们打开应用程序时,应用程序的全部内容是配置在Arduino上运行的计划。“a”在方法中代表什么。调用(a)?我对思考真的很陌生:C@IñakiPedrocheAramburu a->appPreferences,我用安全套名称更新代码您就是那个人,非常感谢,这是公认的答案。@IñakiPedrocheAramburu,我是来帮忙的;)
public static void main(String[] args) {
  AppPreferences preferences = new AppPreferences();
  for(int i=1;i <= 7;i++){
    for(int j = 1;j <=4;j++){
      try {
        String func ="getD"+i+"t"+j+"h";
        Method method = AppPreferences.class.getMethod(func);
        Object result = method.invoke(preferences);
        System.out.print(result);
      } catch (Exception e) {
        System.err.print(".");
      }
    }
}
    Method method = AppPreferences.class.getMethod(func, String.class);
    Object result = method.invoke(a, "param");