类名.class;
Class.forName("类的全限定地址")
类对象名.getClsass();
Class c1 = Cat.class;
Class c2 = Class.forName("com.mingming.test_junit01.Cat");
Cat cat = new Cat();
Class c3 = cat.getClass();
2.反射获取构造器对象
反射获取字节码对象
反射获取无参构造器对象
反射 获取 Cat对象
创建带参构造器对象
暴力反射
反射获取带参构造器对象, 并反射回去Cat对象
/*
反射 获取构造器对象
*/
public class Demo002 {
public static void main(String[] args) throws NoSuchMethodException, InvocationTargetException, InstantiationException, IllegalAccessException {
//创建字节码对象
Class catClass = Cat.class;
//反射获取无参构造器对象
Constructor dc = catClass.getDeclaredConstructor();
//反射 获取 Cat对象
Cat cat = (Cat) dc.newInstance();
//创建带参构造器对象
Constructor declaredConstructor = catClass.getDeclaredConstructor(String.class);
//暴力反射
declaredConstructor.setAccessible(true);
//反射获取带参构造器对象, 并反射回去Cat对象
Cat z = (Cat) declaredConstructor.newInstance("张三");
System.out.println(z.getName());
}
}
3.反射获取成员变量
反射获取字节码对象
反射获取一个成员变量对象
反射获取一个构造器对象
暴力反射
给成员变量设置值
反射获取设置值后的成员变量
/*
反射 获取成员变量
*/
import java.lang.reflect.Field;
import java.lang.reflect.InvocationTargetException;
public class Demo003 {
public static void main(String[] args) throws NoSuchFieldException, IllegalAccessException, NoSuchMethodException, InvocationTargetException, InstantiationException {
//创建字节码对象
Class<Cat> c1 = Cat.class;
//获取一个成员变量对象
Field name = c1.getDeclaredField("name");
//获取一个构造器对象
Cat cat = c1.getDeclaredConstructor().newInstance();
//暴力反射
name.setAccessible(true);
//给成员变量设置值
name.set(cat,"张三");
//获取设置值后的成员变量
System.out.println(name.get(cat));
}
}
4.反射获取方法对象
反射创建字节码对象
反射方法对象
反射构造器对象 返回一个Object o 对象
暴力反射
执行方法
/*
反射获取方法对象
*/
import java.lang.reflect.InvocationTargetException;
import java.lang.reflect.Method;
public class Demo004 {
public static void main(String[] args) throws NoSuchMethodException, InvocationTargetException, InstantiationException, IllegalAccessException {
//创建字节码对象
Class c = Cat.class;
//反射方法对象
Method run = c.getDeclaredMethod("run");
//反射构造器对象 返回一个Object o 对象
Cat cat = (Cat) c.getDeclaredConstructor().newInstance();
//暴力反射
run.setAccessible(true);
//执行方法
run.invoke(cat);
}
}

被折叠的 条评论
为什么被折叠?



