已有258人关注
Java中反射
发表在Java答疑区 2017-03-17
是否精华
版块置顶:

利用反射可以得到成员变量,但是局部变量却有问题。

代码思路有点乱,请见谅。

import java.lang.reflect.*;

class A{

int r =8;

public void f1(){

             int i = 0;

             

    System.out.println("00"+i);

        }

        private void f2(){

             float q = 3;

    System.out.println("0000"+q);

        }

}

class  reflect_text{

public static void main(String[] args){

              A a1 = new A();

     Class c = a1.getClass();//获取a1类的类类型               

     Method[] x = c.getDeclaredMethods();//获得方法名

           for(int i = 0;i<x.length;i++){

    System.out.println("获得方法:"+x[i]);

    System.out.println("=======================");

                 //获得方法的返回值类型

        Class y = x[i].getReturnType();             

    System.out.println("方法的返回值类型:"+y.getName());

    System.out.println("=======================");

    //获取局部变量名

    Class u = x[i].getClass();

    Field[] l=u.getDeclaredFields();

             for(int z=0;z<l.length;z++){

                Field h = l[z];

            System.out.println("获取局部变量名称"+h.getName());

           

             }     

             System.out.println("=======================");

     }

              //获得成员变量名

              Field[] l=c.getDeclaredFields();

              for(int i=0;i<l.length;i++){

                 Field h = l[i];

            System.out.println("获取成员变量的名称:"+h.getName());

        

              }

             

         }

}

22THU~_ALV8@N2V%T%UXA_0.png

分享到:
精彩评论 1
根号申
学分:4736 LV12
TA的每日心情
2021-07-16 23:48:46
2017-03-17
沙发

反射无法获得局部变量,解析局部变量属于反编译范畴。

首页上一页 1 下一页尾页 1 条记录 1/1页
手机同步功能介绍
友情提示:以下图书配套资源能够实现手机同步功能
明日微信公众号
明日之星 明日之星编程特训营
客服热线(每日9:00-17:00)
400 675 1066
mingrisoft@mingrisoft.com
吉林省明日科技有限公司Copyright ©2007-2022,mingrisoft.com, All Rights Reserved长春市北湖科技开发区盛北大街3333号长春北湖科技园项目一期A10号楼四、五层
吉ICP备10002740号-2吉公网安备22010202000132经营性网站备案信息 营业执照