反射的定义:
JAVA反射机制是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法;对于任意一个对象,都能够调用它的任意一个方法;这种动态获取的信息以及动态调用对象的方法的功能称为java语言的反射机制。
反射相关方法
1. 拿到相关的类
//直接new,然后通过getclass直接拿
Mouse mouse=new Mouse();
Class c=mouse.getClass();
//通过类路径拿到类(最常用)
String className="bocc.Mouse";
Class<?> c=Class.forName(className);
2.创建对象
Object object=c.newInstance();
3.获取类的属性、方法
//打印无参构造函数
System.out.println(c.getDeclaredConstructor());
//打印有参构造函数
//System.out.println(c.getDeclaredConstructor(String.class, String.class));
//打印所有的构造函数
System.out.println(c.getDeclaredAnnotations());
//获取名字为one公有属性
Field oneFiled= c.getField("one");
//获取所有公有属性
Field[] oneFiledList=c.getFields();
//获取名字为two私有属性
Field twoFiled= c.getDeclaredField("two");
//获取所有私有属性
Field[] twoFiledList=c.getDeclaredFields();
//获取名字为connect,参数为null的方法
Method connectMethod=c.getMethod("connection");
//获取名字为connect,参数为String的方法
Method connectMethod2=c.getMethod("connection",new Class[]{String.class});
//获取所有的私有方法,私有方法和公有的区别只是加了Declared
Method[] privateMethods=c.getDeclaredMethods();