java的反射

以前一直是写PHP的,对于PHP中的$($v)这样的用法觉得超级的方便。可是JAVA不提供这样的东西。我在处理同一页面中多个不同的请求,就常会写一堆的IF..ELSE..,自己看了也烦。偶像提点我了:JAVA是有反射机制的。为此小搞了一下。

反射,最重要的就是要让编译器知道所有要通过RTTI来处理的类。

具体处理分以下几个步骤:

1、对页面级的请求,都以请求名定义请求实现的方法。

public class Action {
private News news;
//构造器
public Action(News news){
this.news = news;
}

//新增操作显示新增界面
public ModelAndView showadd(HttpServletRequest request,ModelAndView mav){
return mav;
}

//新增操作
public ModelAndView addnews(HttpServletRequest request,ModelAndView mav){
mav.addObject("msg",news.newsAdd(request));
return mav;
}

//修改操作
public ModelAndView editnews(HttpServletRequest request,ModelAndView mav) {
return mav;
}


//作废操作
public ModelAndView cancelnews(HttpServletRequest request,ModelAndView mav){
return mav;
}

//删除
public ModelAndView deletenews(HttpServletRequest request,ModelAndView mav){
return mav;
}
}


2、反射方法核心

//获取反射操作的类
Class c = Class.forName(className);
//获得一个专属的Constructor的对象
Object object = c.getConstructor(conClass).newInstance(conArgs);
//得到具体操作名称的方法,以参数的class获取
Method m = c.getMethod(actionName, cl);
//执行此操作 加入实参
Object obj = m.invoke(object,args);


3、反射方法调用

Reflect r = new Reflect(action);
mav = (ModelAndView) r.getAction("cn.tohot.dscz.news.Action",
new Class[]{News.class},
new Object[]{news},
new Class[]{HttpServletRequest.class,ModelAndView.class},
new Object[]{request,mav});

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值