weixin_慕仔7412015
2019-06-19 13:29
Method method = list.getClass().getMethod("add", Object.class);
Object invoke = method.invoke(list, 2323);
可以用所有类的共同父类Object来遍历
package reflect.analytical.generics;
import java.lang.reflect.Method;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
public class TestClass {
public static void main(String[] args) {
List list1 = new ArrayList();
Class class1 = list1.getClass();
List<String> list3 = new ArrayList<String>();
list3.add("java");
Class class3 = list3.getClass();
System.out.println(class1 == class3);
/*反射是编译后执行的;
*集合中的泛型用于防止错误输入, 只在编译阶段有效。
* */
try {
Method method = class3.getMethod("add", Object.class);
method.invoke(list3, 20000);
System.out.println("list3.size()" + list3.size());
Iterator it = list3.iterator();
while(it.hasNext()) {
System.out.println(it.next());
}
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
//执行结果:
true
list3.size()2
java
20000
普通的for(int i=0;i<list.size();i++)
没有遍历的必要了呀
反射——Java高级开发必须懂的
151465 学习 · 335 问题
相似问题
回答 1
回答 1