1
Class clazz1=Class.forName("com.xiaonuo.ceshi.Person");
2
Class clazz2=Person.class;
3
Person person=new Person();
Class clazz3=person.getClass();
使用方法
//无参数方法
Class clazz1=Class.forName("com.xiaonuo.ceshi.Person");
Person p=(Person) clazz1.newInstance();
p.name="小绵羊";
p.age=14;
p.show();
//第二种有参数
Constructor c = clazz1.getConstructor(String.class,Integer.class);//无参数构造器
Person person2=(Person)c.newInstance("cyc",99);
person2.show();
//获取字节码的方法来设置
//设置public 的属性
Field f1=clazz1.getField("name");
f1.set(person2, "sgw");
//设置私有的
Field f2 = clazz1.getDeclaredField("sex");
f2.setAccessible(true);
f2.set(person2, "男");
person2.show();
//公有的方法
Method m1 = clazz1.getMethod("show");//clazz1.getMethod(方法名字,String.class)如果是字符串的话
m1.invoke(p);//m1.invoke(类的名字,方法参数);
//私有方法
Method m2 = clazz1.getDeclaredMethod("eat",String.class);
m2.setAccessible(true);
m2.invoke(p, "米饭");