是这样的,我的Activity或fragment中有好多的控件成员变量,我想把它们都加到同一个List当中,但又不想手动一个一个add,因为实在是太多了,有没有什么方法能一次性获取到:
我知道反射可以做到,但是我是在当前类自己里面的,又不是别的类里面的,而且所有的成员变量我已经知道了,用反射显得没有必要,不用反射该如何实现呢? 怎么才可以把这些都加到一个List或Map当中呢,用一个函数方法实现?
是这样的,我的Activity或fragment中有好多的控件成员变量,我想把它们都加到同一个List当中,但又不想手动一个一个add,因为实在是太多了,有没有什么方法能一次性获取到:
我知道反射可以做到,但是我是在当前类自己里面的,又不是别的类里面的,而且所有的成员变量我已经知道了,用反射显得没有必要,不用反射该如何实现呢? 怎么才可以把这些都加到一个List或Map当中呢,用一个函数方法实现?
不管在当前类还是其他类,你的需求都可以通过反射实现。可以了解 java.lang.reflect.Class 类 和 java.lang.reflect.Field 类的用法。
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.
15 回答8.4k 阅读
8 回答6.2k 阅读
1 回答4k 阅读✓ 已解决
3 回答6k 阅读
3 回答2.2k 阅读✓ 已解决
2 回答3.1k 阅读
2 回答3.8k 阅读
为什么要把控件加入到一个
list
或map
里面?