API里 java.lang.reflect.Field

解决方案 »

  1.   

    http://www.mldn.cn/articleview/2007-4-8/article_view_1912.htm
    下面有块代码虽然有点乱 但可能对你有帮助
      

  2.   

    http://blog.csdn.net/upyaya/archive/2006/09/07/1188730.aspx
    再看一下这个
      

  3.   

    反射可以得到类的Fields列表但没有你这样用的...
      

  4.   

    既然能改成全局变量 那为什么不再加个方法 直接get一下  还费劲的用个反射
      

  5.   

    insiku(tmd 结帖啊!!!) 全世界就你对 行了吧?没见过这么没素质的
      

  6.   

    insiku(tmd 结帖啊!!!) 你就没有看错的时候是不???我没说你纠正错了 我是说你说话的态度 怎么?别人不小心看错了你就可以那么说话?我炫耀?要你那么说凡是回帖解答的人都是在炫耀 拜托你不要以小人之心度君子之腹 看看你名字后面的那几个字 素质怎么样还用我说?
      

  7.   

    WIN_ANGEL(WIN_ANGEL) ( ) 信誉:100    Blog   加为好友  2007-4-19 16:55:28  得分: 0  
       
    insiku(tmd 结帖啊!!!) 你就没有看错的时候是不???我没说你纠正错了 我是说你说话的态度 怎么?别人不小心看错了你就可以那么说话?我炫耀?要你那么说凡是回帖解答的人都是在炫耀 拜托你不要以小人之心度君子之腹 看看你名字后面的那几个字 素质怎么样还用我说?==========================================================没素质的狗又在乱叫了
    你还真君子了 对待敌人要向秋风扫扫落叶般 别人不结帖子 本来就很不道德  你高素质 还开心的不的了 这就叫素质? 典型的犯贱 强盗抢你的衣服 你把裤子也脱了说:拿去 一起给你 
    犯贱 典型的中国式犯贱 自诩为高素质 其实只不过假惺惺的贱骨头我就想不通了 这讲错了 反而有理了 这世界无奇不有啊  就像现在借钱的要求着欠钱的说 爷 今天还点吧 
    明显的强词夺理 转移话题看错 最鄙视的就是不看仔细就自以为是的胡说八道此次争论到此为止 在别人帖子里吵架这种行为 想不到你这种高素质的人也会做  素质真tmd高 实在是高啊
      

  8.   

    import java.lang.reflect.*;
    class ReflectionTest
    {
    public static void main(String args[]) throws Exception
    {
    Class a = Class.forName("B");//1.获取B的原对象(要记得这方法)
    // Class f = B.class;           //2.获取B的原对象
    System.out.println(a);
    Method[] method = a.getDeclaredMethods();//获取B的所有方法
    for(int i = 0;i<method.length;i++)
    {
    System.out.println(method[i]);
    }
    System.out.println();
    Field[] file = a.getDeclaredFields();//获取B的所有属性
    for(int i = 0;i<file.length;i++)
    {
    System.out.println(file[i]);
    }
    System.out.println();
    for(int i=0;i<file.length;i++)      //获取B的所有变量及访问控制符
    {
    Field temp = file[i];
    String name = temp.getName();
    System.out.println(name);
    Class type = temp.getType();
    System.out.println(type);
    int mo = temp.getModifiers();
    String mod = Modifier.toString(mo);
    System.out.println(mod);
    if(i==4)
    {
    Object o = file[i].get(new B());
    System.out.println(o);
    }
    if(i==0)
    {
    B b = new B();
    file[i].set(b,3);
    System.out.println(file[i].get(b));
    }
    }

    }
    }
    class B extends A
    {
    public int x;
    private double y;
    public static boolean boo;
    String str;
    public static final char c=65;

    public int get(){return 3;}
    public void set(String name,int age){}
    public static void sleep(){} public B(){}
    public B(int k){}
    }
    class A
    {
    public int get(){return 4;}
    }
      

  9.   

    SB年年有 今年特别多 中国怎么尽出你这种"人" 太tmd让人反胃了
    你这种强词夺理就像 杀人犯在法庭上说:是他先打我的,他不对,他不对
    避重就轻 转移话题 以强调没素质来转移你 胡说八道 误人子弟 态度及其恶劣 歪理邪说一大堆 你莫非是"李 洪 志"的关门弟子
    你们老师没教你做人啊?
    真替你妈难过 生猪都比生你好 
    也替你爸难过 还不如射到墙上
      

  10.   

    insiku(tmd 结帖啊!!!) :
        这是技术论坛!
      

  11.   

    没办法,在class文件中,字段和方法信息是必选项,所以反射可以工作,但是行号和变量表(方法内的局部变量)是可选的,删除了jvm也可以执行(混淆器为了保护代码会把它删掉),所以没办法保证在执行的时候知道,编写的时候想办法吧。
    而且反射也是通过名称得到内容,不知道怎么利用内容反得到名称。