public Field[] getFields() 获取所有的public成员变量
可以看出这些方法都是异曲同工的,好了直接看一下例子吧
[java]
/**
* 获取成员变量Field
* getField()
* getDeclaredField()
* */
Field mem = cls1.getDeclaredField("name");
mem.setAccessible(true);
System.out.println("we get form field :"+mem.get(obj));
/**
* 获取成员变量Field
* getField()
* getDeclaredField()
* */
Field mem = cls1.getDeclaredField("name");
mem.setAccessible(true);
System.out.println("we get form field :"+mem.get(obj));
这是在访问私有变量,什么私有变量也可以访问??是的。。。。
获取类的方法
我觉得你已经可以帮我写这一段了,封装类的方法的类是Method.获取method也有四个方法,猜到了没??
public Method[] getMethods() 获取所有的共有方法的集合
public Method getMethod(String name,Class< >... parameterTypes) 获取指定公有方法 参数1:方法名 参数2:参数类型集合
public Method[] getDeclaredMethods() 获取所有的方法
public Method getDeclaredMethod(String name,Class< >... parameterTypes) 获取任意指定方法
看下面的例子吧
[java]
/**
* 调用类的方法 Method
* getMethod()
* getDeclaredMethod()
*
* */
Method f = cls1.getMethod("getName", null);
Object name = f.invoke(obj, null);
System.out.println("we invoke method : "+ name);
/**
* 调用类的方法 Method
* getMethod()
* getDeclaredMethod()
*
* */
Method f = cls1.getMethod("getName", null);
Object name = f.invoke(obj, null);
System.out.println("we invoke method : "+ name);
这个很简单吧,无参的时候我们只要传null就行了。