Java反射

来源:互联网 发布:冬天四件套绒淘宝 编辑:程序博客网 时间:2024/09/21 11:23

前言

  • 最近在做代码混淆的时候,发现使用反射的地方混淆之后,会出错,这里,将反射相关的问题记录下。

反射案例。

  • 所谓反射,就是在代码运行时动态获取类以及类的成员变量,通过一些例子来了解。

1.使用getClass来获取类。

public static void main(){Demo demo =new Demo();    System.out.println(demo.getClass().getName());}

上面的例子中,使用demo.getClass来动态获取类之后,可以通过getName()获取类的包名.

2.所有的类的对象都是Class对象的实例

package cax;class Demo{}public static void main(String [] args){    Class<?> demo1 =null;    Class<?> demo2 =null;    Classs<?> demo3 =null;    demo1 = new Demo().getClass();    demo2 = Demo.class;    demo3 = class.forName("cax.Demo"));    System.out.println(demo1.getName());}
  • 上面demo1,2,3的生成方式是三种类对象的获取方式,比较推荐的为demo3的生成方式,注意,这种方式需要类的全名,是包含包名的。

3.通过反射实例化对象

package cax;class Person{}demo = class.forName("cax.Person")Person pserson = (person)demo.newInstance();
  • 这里需要指出的是,当一个类有多个构造函数时,编译后的构造函数的顺序和代码中的顺序并不保证完全一样。
  • 其他的通过反射获取别的属性,方法,父类的方法等原理都是一样的,不再赘述。

4.获取类加载器的信息

demo = class.forName("cax.Demo");//得到类的字节码demo.getClassLoader();//得到类加载器的对象demo.getClassLoader().getClass()//再次通过反射,获取classLoader的类。demo.getClassLoader().getClass().getName();//获取classLoader的包名。

反射的使用场景

  • 在使用工厂类的时候
  • 最常见的是在获得jdbc驱动的时候。
  • 使用泛型的时候

参考

http://www.cnblogs.com/rollenholt/archive/2011/09/02/2163758.html
http://blog.csdn.net/ljphhj/article/details/12858767

原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 我手机换号码了驾驶证档案怎么办 手机号码换了查不到驾照分了怎么办 金牛区源泉幼儿园摇不到号怎么办 b2驾驶证被扣12分后怎么办 福建省超过一年驾照未年审要怎么办 为缓解交通拥堵现状人们应该怎么办 告对方不知道对方出身日期怎么办 上海业余围棋4进3老不过怎么办 孩子想上学但又怕同学议论怎么办 在菲律宾黑了博彩老板的钱怎么办 九阴真经3d先遣服更新失败怎么办 公司核名通过不想用了怎么办 公司核名下来了不想注册了怎么办 家人受到小贷公司催款威胁怎么办 商标抽签资料提交上去有问题怎么办 花椒直播助手苹果版下载不了怎么办 在香港酒店住把床单弄上血了怎么办 综英美我能怎么办我也很绝望百度云 护照的名字中间有个空格怎么办 开车不小心压死黄鼠狼了怎么办 三户联保贷款一方不还怎么办 因为隔断中介违约…我该怎么办 上海居住证没下来换住址了怎么办 工商注册后大股东不注资怎么办 公司不给去办理变更股东信息怎么办 滴滴车主注册没有自己的车型怎么办 代办用虚假地址注册的公司怎么办? 写字楼注册公司租户不租了怎么办 租户没把公司迁出我该怎么办 租户不肯把户口迁出了业主怎么办 同片区个体户营业场所搬迁怎么办 个体领发票的本丢了怎么办 领房产证发票和合同丢了怎么办 税务登记证5年没有办怎么办 二证合一后税务登记证怎么办? 微信漂流瓶打招呼对方收不到怎么办 添加不上徽信好友的微信帐号怎么办 手机号码不用了微信密码忘了怎么办 别人用我的手机号码注册微信怎么办 电脑此网站的安全证书有问题怎么办 起诉离婚开庭时被告不到场怎么办