知道类名,我们可以根据方法名来获取类中的方法,但是如果不知道类名,我们如何去获取类名,以及其中的方法名呢!接下来我就讲如何获取方法名,类名进行详细介绍。
Class c1 = Class.forName("com.study.Annoation.user");
/* 第二种加载驱动的方法
user user = new user();
c1 = user.getClass();*/
//获取类的名字
System.out.println(c1.getName());
System.out.println(c1.getSimpleName());//获得类名
// 获得类的属性
Field[] fields = c1.getFields();//只能找到public属性
fields = c1.getDeclaredFields();//可以获得全部属性
for (Field f1 : fields) {
System.out.println(f1);
}
System.out.println("------------------");
// 获得指定属性的值
Field name = c1.getDeclaredField("name");
System.out.println(name);
//获得类的方法
System.out.println("==============");
Method[] methods = c1.getMethods();//获得本类及其父类的所有方法
for (Method f1 : methods) {
System.out.println(f1);
}
System.out.println("-----------------");
methods = c1.getDeclaredMethods();//只可以获得本类的方法
for (Method f1 : methods) {
System.out.println("DeclaredMethod:" + f1);
}
//获得指定方法
// 重载
Method getname = c1.getMethod("getName");
Method setName = c1.getMethod("setName", String.class);
System.out.println("getname=:" + getname);
System.out.println("setname:" + setName);
//获得指定的构造器
System.out.println("==============");
Constructor[] constructors = c1.getConstructors();//获得public方法
Constructor declaredConstructor = c1.getDeclaredConstructor();//获得全部方法
Constructor constructor = c1.getDeclaredConstructor(String.class, int.class, int.class);//获得指定构造器
user user2 = (user) constructor.newInstance("zhang", 12, 12);
System.out.println(user2);
以上就是方法名,构造器名字的获取方法,如果大家有什么不懂得内容,可以及时和我沟通。