class管理指定类的方法
获得class对象是指通过不同方式获取表示某个类的class对象,获取到Class对象之后,就可以利用Class对象获取和操作类的属性、构造器、方法、父类和接口了。
以下是三种常见的获得class对象的方法:
1.通过forName()方法获取:已知一个类的全类名,且该类在类路径下,可通过Class类的静态方法forName()获取。
e.g:Class c=Class.forName("要调用的类的路径"); com.mysql.cj.jdbc.Driver
2.通过类名.class获取,这种方式最安全可靠,性能高。多用于参数传递,如通过反射得到对应结构器对象。
e.g:Student.class;
3.通过对象.getClass()获取:已知某个类的实例,调用该实例的getClass()方法获取Class对象。
e.g:obj.getClass();
获得管理指定类的方法,成员变量,构造方法
getMethods() 返回所有共有的方法,包括从父类或父接口继承的所有公共方法。
getConstructors() 返回所有的共有构造函数,包括从父类或父接口继承的所有公共方法。
getFields() 返回所有的共有成员变量,包括从父类或父接口继承的所有公共方法。
获得包括私有的所有方法,成员变量,构造方法
getDeclaredMethods() 返回所有共有的方法,包含public、protected和private方法。
getDeclaredContructors() 返回所有的共有构造函数,包含public、protected和private方法。
getDeclaredFields() 返回所有的共有成员变量,包含public、protected和private方法。
根据参数和名称指定一个方法或构造方法
getConstructor(参数类型.....):根据参数类型获取对应的构造方法。
getMethod(方法名称,参数类型):根据方法名称合参数类型获取对应的方法。
Constructor
1.使用参数确定构造方法
Constructor ctt0=c.getContructor(null);
Constructor ctt1=c.getConstructor(int.class,String.class,float.class);
2.使用构造方法对象的new Instance(),来构建对象
Object obj = ctt1.newInstance(1, "张三", 3.89f);
这里的ctt1是一个构造方法对象,通过调用newInstance()方法并传入相应的参数,可以创建一个新的对象
Method
1.找到指定的方法
Method m=c.getMethod(方法名,int.class,String.class)
2.使用该方法
String x=m.invoke(obj,param1,param2,,,,,,,);