Android 如何遍历获取当前Java类中的所有成员变量?

flycumt
  • 245

是这样的,我的Activity或fragment中有好多的控件成员变量,我想把它们都加到同一个List当中,但又不想手动一个一个add,因为实在是太多了,有没有什么方法能一次性获取到:

clipboard.png

我知道反射可以做到,但是我是在当前类自己里面的,又不是别的类里面的,而且所有的成员变量我已经知道了,用反射显得没有必要,不用反射该如何实现呢? 怎么才可以把这些都加到一个List或Map当中呢,用一个函数方法实现?

回复
阅读 5.5k
3 个回答

为什么要把控件加入到一个 listmap 里面?

不管在当前类还是其他类,你的需求都可以通过反射实现。可以了解 java.lang.reflect.Class 类 和 java.lang.reflect.Field 类的用法。

来世不记得
  • 1
新手上路,请多包涵

Field[] declaredFields = Cargo.class.getDeclaredFields();

    for (Field field : declaredFields) {
        try {
            field.setAccessible(true);
            Log.i(TAG, "field = " + field.getName() + " , " + field.get(cargo));
        } catch (IllegalAccessException e) {
            e.printStackTrace();
        }
    }

Cargo是一个类,可以是你的Activity, field.get(cargo),此处的cargo是具体对象,在activity中可以传MyActivity.this.

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
宣传栏