永发信息网

java 反射常用什么地方

答案:4  悬赏:50  手机版
解决时间 2021-01-04 02:43
  • 提问者网友:轮囘Li巡影
  • 2021-01-03 13:45
java 反射常用什么地方
最佳答案
  • 五星知识达人网友:舍身薄凉客
  • 2021-01-10 01:37
通过java反射获得加载类,获得类的实例,
还有可以获得类中的私有成员属性。
Class c=Class.forName("类的名称");//通过配置文件
c.newInstance();//得到类的无参构造
c.getDeclaredFields();//获得本类的所有成员
c.getFields();//获得本类以及父类的一些公有属性
全部回答
  • 1楼网友:慢性怪人
  • 2021-01-10 03:34

class c = class.forname("student"); //通过字符串装载类, 必须是绝对路径, 即包括包名 object o = c.newinstance(); //获取装载类的实例, 如果找不到就会抛出异常

class[] cs= {sting.class,int.class}; //定义一个类的数组, 一般这种都是用在method的参数列表

//string.class说明传的是类型

method m = c.getmethod("study",cs); //获取装载类的实例的study方法, 注意后面的参数,

class[] ca = {"tom",18} //和上面有点不同, 这里传的是值 object result = m.invoke(o,ca); //执行method方法,并获取结果

反射一般都用在类名,字段,方法可以随便变化的时候, 还可以进行统一的处理,提高扩展性

比如说hibernate框架的实体类, 预先你不可能知道实体类会有什么字段, 包括字段的类型都是有可能随意变化的, 这时候要获取指定类的字段信息就必须得使用反射了.

还有struts的actionform等都一样

以上纯属个人意见, 学得不是很深,希望能给你带来帮助

  • 2楼网友:杯酒困英雄
  • 2021-01-10 02:28
在java开发中用到 写配置文件的地方都要用到java反射机制,比如我们常用的properties属性文件,struts spring hibernate mybatis 等,基于这个反射机制,在java开发中我们可以利用反射机制将一些类统一的整理出来 写在配置文件中(例如spring的poa思想),统一管理类的实例化,使得java代码更具有 逻辑性 还有在重写tostring ,equals时也用到 利用反射可以获得 类的属性 方法 构造器 和参数列表 利用object的newInstance(Object ... initargs)方法可以根据 参数选择构造器实例化对象
  • 3楼网友:街头电车
  • 2021-01-10 02:02
举个列子吧,比如几个类有同一个方法,但是这个方法又不是用抽象类或接口去做的 那么你在一个公用方法中要执行这个方法,而这几个类都可能会作为参数传入 那么你就会用到反射了
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯