栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

反射替代各种判断代码

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

反射替代各种判断代码

反射替代各种else if (servlet)

@WebServlet("/order")
public class OrderServlet extends HttpServlet {
 protected void doGet(HttpServletRequest request, HttpServletResponse
response) throws ServletException, IOException {
 //获取提交的参数
 String method = request.getParameter("method");
//判断参数,调⽤不同的⽅法
 if ("add".equals(method)) {
 add(request, response);
 } else if ("delete".equals(method)) {
 delete(request, response);
 } else if ("update".equals(method)) {
 update(request, response);
 } else if ("findAll".equals(method)) {
 findAll(request, response);
 } else if ("findByPage".equals(method)) {
 findByPage(request, response);
 }
 }
 //添加订单功能
 public void add(HttpServletRequest request, HttpServletResponse
response) throws ServletException, IOException {
 }
 //删除订单功能(指订单的状态发⽣改变,数据库中并未删除)
 public void delete(HttpServletRequest request, HttpServletResponse
response) throws ServletException, IOException {
 }
 //更新订单功能
 public void update(HttpServletRequest request, HttpServletResponse
response) throws ServletException, IOException {
 }
 //查找所有订单功能
 public void findAll(HttpServletRequest request, HttpServletResponse
response) throws ServletException, IOException {
 }
 //分⻚查找的订单功能
 public void findByPage(HttpServletRequest request, HttpServletResponse
response) throws ServletException, IOException {
 }
 protected void doPost(HttpServletRequest request, HttpServletResponse
response) throws ServletException, IOException {
 doGet(request, response);
 }
}

反射技术减少重复性代码(用了反射,性能可能会降低 )

@WebServlet("/order")
public class OrderServlet extends HttpServlet {
 protected void doGet(HttpServletRequest request, HttpServletResponse
response) throws ServletException, IOException {
 try {
 //获取提交的参数
 String md = request.getParameter("method");
 //反射,调⽤⽅法
 Class clazz = this.getClass();
 //获取⽅法
 Method method = clazz.getMethod(md, HttpServletRequest.class,
HttpServletResponse.class);
 //执⾏⽅法
 method.invoke(this, request, response);
 } catch (Exception e) {
 e.printStackTrace();
 }
 }
 //添加订单功能
 public void add(HttpServletRequest request, HttpServletResponse
response) throws ServletException, IOException {
 }
 //删除订单功能(指订单的状态发⽣改变,数据库中并未删除)
 public void delete(HttpServletRequest request, HttpServletResponse
response) throws ServletException, IOException {
 }
 //更新订单功能
 public void update(HttpServletRequest request, HttpServletResponse
response) throws ServletException, IOException {
 }
 //查找所有订单功能
 public void findAll(HttpServletRequest request, HttpServletResponse
response) throws ServletException, IOException {
 }
 //分⻚查找的订单功能
 public void findByPage(HttpServletRequest request, HttpServletResponse
response) throws ServletException, IOException {
 }
 protected void doPost(HttpServletRequest request, HttpServletResponse
response) throws ServletException, IOException {
 doGet(request, response);
 }
}

把反射的代码提取到base,代码就更简洁了

public abstract class baseServlet extends HttpServlet {
 protected void doGet(HttpServletRequest request, HttpServletResponse
response) throws ServletException, IOException {
 try {
 //获取提交的参数
 String md = request.getParameter("method");
 //反射,调⽤⽅法
 Class clazz = this.getClass();
 //获取⽅法
 Method method = clazz.getMethod(md, HttpServletRequest.class,
HttpServletResponse.class);
 //执⾏⽅法
 method.invoke(this, request, response);
 } catch (Exception e) {
 e.printStackTrace();
 }
 }
 protected void doPost(HttpServletRequest request, HttpServletResponse
response) throws ServletException, IOException {
 doGet(request, response);
 }
}
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/666742.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号