http://search.csdn.net/Expert/topic/2331/2331974.xml?temp=.5021173

解决方案 »

  1.   

    http://search.csdn.net/Expert/topic/844/844084.xml?temp=.5763971
      

  2.   

    import java.lang.reflect.*;class Test{
    private int pri = 10;
    protected int pro = 20;
    public int pub = 30;

    private void pri_print(){
    System.out.println("private");

    protected void pro_print(){
    System.out.println("protected");

    public void pub_print(){
    System.out.println("public");

    }
    public class Demo{
    public static void main(String[] args) 
    throws IllegalAccessException,
    IllegalArgumentException, InvocationTargetException{
         Class c = Test.class;  
             
         Field[] fs = c.getDeclaredFields();
         //设为可访问的
         Field.setAccessible(fs, true);
         for(int i = 0; i < fs.length; i++){
         System.out.println(fs[i].getName());    
         }
         //得到private int pri的值
         System.out.println(fs[0].getInt(new Test()));
        
         Method[] ms = c.getDeclaredMethods();
         Method.setAccessible(ms, true);
         for(int i = 0; i < ms.length; i++){
         System.out.println(ms[i].getName());    
         }
         //得到定义这个方法的类名
         System.out.println(ms[0].getDeclaringClass().getName());    
         //调用private方法
         ms[0].invoke(new Test(), null);
        }
    }
      

  3.   

    http://www-900.ibm.com/developerWorks/cn/java/j-dyn0603/http://edu.cn700.com/Print.asp?ArticleID=20756
      

  4.   

    例子
    -------------import java.lang.reflect.*;
    public class DumpMethods {
       public static void main(String args[]) {
           try {
               Class c = Class.forName(args[0]);
               Method m[] = c.getDeclaredMethods();
               for (int i = 0; i < m.length; i++)
                   System.out.println(m[i].toString());
           } catch (Throwable e) {
               System.err.println(e);
           }
       }
    }按如下语句执行:java DumpMethods java.util.Stack它的结果输出为:public java.lang.Object java.util.Stack.push(java.lang.Object)public synchronized java.lang.Object java.util.Stack.pop()public synchronized java.lang.Object java.util.Stack.peek()public boolean java.util.Stack.empty()public synchronized int java.util.Stack.search(java.lang.Object)这样就列出了java.util.Stack 类的各方法名以及它们的限制符和返回类型。这个程序使用 Class.forName 载入指定的类,然后调用 getDeclaredMethods 来获取这个类中定义了的方法列表。java.lang.reflect.Methods 是用来描述某个类中单个方法的一个类。---------------
    百度上可以搜到一大堆
      

  5.   

    http://dev.csdn.net/article/58/58798.shtm