首先我们先创建一个Person类,便于我们获取。、
package jdk8; import java.util.HashMap; public class Person { private String name; private Integer age; public Person(){ } public String getName() { return name; } @Override public String toString() { return "Person{" + "name='" + name + '\'' + ", age=" + age + '}'; } public void sayHello(int i){ System.out.println("你好"); } public void Play(String s, HashMap<String,Person> map){ System.out.println("你好"); } public void setName(String name) { this.name = name; } public Integer getAge() { return age; } public void setAge(Integer age) { this.age = age; } public Person(String name, Integer age){ this.name=name; this.age=age; } } 然后进行测试
package jdk8; import java.lang.reflect.Method; import java.lang.reflect.Parameter; /** java反射 */ public class Reflection { public static void main(String[] args) { try{ Class<?> p= Class.forName("jdk8.Person"); Method[]method2=p.getDeclaredMethods(); //获取所有方法名 for (Method method : method2) { System.out.println(method.getName()); Class<?>[] parameters = method.getParameterTypes(); if(parameters.length==0){ System.out.println(method.getName()+"方法中没有参数"); } for (Class<?> parameter : parameters) { System.out.println(parameter+","); } } }catch (ClassNotFoundException e){ e.printStackTrace(); } } } 最终结果如下:
成功打印出方法名称和参数