反射

来源:互联网 发布:地球为什么会自转 知乎 编辑:程序博客网 时间:2024/05/18 00:03

Class.forName(“类的全称”)

不仅表示类类型,还代表动态加载类。

编译时刻加载类是静态加载类,运行时刻加载类是动态加载

方法的名称和方法的参数列表才能决定唯一决定某个方法


public class MethodDemo1 {
public static void main(String[] args) {

// TODO Auto-generated method stub
ArrayList list=new ArrayList();
ArrayList<String> list1=new ArrayList<String>();
list.add("hello");
list1.add("hello");
Class c1=list.getClass();
Class c2=list1.getClass();
System.out.println(c1==c2);
//反射的操作都是编译之后的操作
/*
 * c1==c2结果返回true说明编译之后的集合的泛型是去泛型化的
 * Java中集合的泛型,是防止错误输入的,只在编译阶段有效
 * 绕过编译无效了
 */
try {
Method m=c2.getMethod("add",Object.class);
m.invoke(list1, 20);
System.out.println(list1.size());
System.out.println(list1);
for (String string : list1) {
System.out.println(list1);
}
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();



}


}

原创粉丝点击