// 取得一个类的全部方法定义 public static void main(String[] args) { Class<?> class1 = null; try { class1 = Class.forName("fanshe.Person"); } catch (ClassNotFoundException e) { e.printStackTrace(); } Method[] methods = class1.getMethods();// 得到类的全部方法 for (int i = 0; i < methods.length; i++) { // 得到方法名 String method_name = methods[i].getName(); System.out.print(method_name); // 得到参数类型 Parameter[] parameters = methods[i].getParameters(); for (int j = 0; j < parameters.length; j++) { System.out.println(parameters[j].getName()); } System.out.println(); } }
// 取得Person类中的属性 public static void main(String[] args) { Class<?> class1 = null; try { class1 = Class.forName("fanshe.Person"); } catch (ClassNotFoundException e) { e.printStackTrace(); } { Field[] fields = class1.getDeclaredFields();// 取得Person类的属性 for (int i = 0; i < fields.length; i++) { Class<?> type = fields[i].getType(); System.out.print(fields[i].getName() + ",");// 取得属性的名称 System.out.print(type.getName());// 取得属性的类型 int modifiers = fields[i].getModifiers();// 取得访问修饰符(public,private)的数字 String string = Modifier.toString(modifiers);// 取得访问修饰符 System.out.print("." + string);//输出访问修饰符 System.out.println(); } } System.out.println("================================================"); }
//调用Person类sayHi方法 public static void main(String[] args) { Class<?> class1=null; try { class1=Class.forName("fanshe.Person"); } catch (ClassNotFoundException e) { e.printStackTrace(); } try { //方法原型public void sayHi(String content); //sayHi,方法名称; //String.class,方法参数的类型 Method method = class1.getMethod("sayHi",String.class); //调用方法,必须传递对象实例和方法参数 method.invoke(class1.newInstance(),"111"); } catch (Exception e) { // TODO: handle exception } }