反射reflect
来源:互联网 发布:nat123访问数据库很慢 编辑:程序博客网 时间:2024/05/20 14:22
反射调用方法实体类
测试类
package bean;import java.lang.reflect.Constructor;import java.lang.reflect.Method;import org.junit.Test;/* * 测试类 * public 方法(通过反射去调用共有的方法) * private 方法(通过反射去调用私有的方法) * 共有构造方法(通过反射去调用的构造方法) */public class Reflect { // public 方法(通过反射去调用共有的方法) @Test public void test1() { SysUser sysUser = new SysUser(); try { Class<?> clazz = Class.forName("bean.SysUser"); Method method = clazz.getMethod("eat1", String.class); String invoke = (String) method.invoke(sysUser, "111"); System.out.println("invoke=" + invoke); } catch (Exception e) { // TODO Auto-generated catch block e.printStackTrace(); } } // private 方法(通过反射去调用私有的方法) @Test public void test2() { SysUser sysUser = new SysUser(); try { Class<?> clazz = Class.forName("bean.SysUser"); Method method = clazz.getDeclaredMethod("eat2", String.class); method.setAccessible(true); String invoke = (String) method.invoke(sysUser, "112"); System.out.println("invoke=" + invoke); } catch (Exception e) { // TODO Auto-generated catch block e.printStackTrace(); } } // 共有构造方法(通过反射去调用的构造方法) @Test public void test3() { SysUser sysUser = new SysUser(); try { Class<?> clazz = Class.forName("bean.SysUser"); Constructor<?> constructor = clazz.getConstructor(String.class); SysUser newInstance = (SysUser) constructor.newInstance("2222"); System.out.println(newInstance.name); } catch (Exception e) { // TODO Auto-generated catch block e.printStackTrace(); } }}
实体类
package bean;/* * */public class SysUser { String name; String password; public String eat1(String str) { return str; } private String eat2(String str) { return str; } public SysUser(String name) { this.name = name; } public SysUser(String name, String password) { super(); this.name = name; this.password = password; } public SysUser() { } public String getName() { return name; } public void setName(String name) { this.name = name; } public String getPassword() { return password; } public void setPassword(String password) { this.password = password; } @Override public String toString() { return "SysUser [name=" + name + ", password=" + password + "]"; }}
CommonServlet
package com.huaxin.webexam.web.common;import java.io.IOException;import java.lang.reflect.Method;import javax.servlet.ServletException;import javax.servlet.http.HttpServlet;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;public class CommonServlet extends HttpServlet { protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { request.setCharacterEncoding("utf-8"); response.setContentType("text/html; charset=UTF-8"); try { /** 0.当前字节码文件 **/ Class<? extends CommonServlet> clazz = this.getClass(); /** 1.获取method参数 **/ String method = request.getParameter("method"); /** 2.获取method 反射出当前访问的方法 **/ Method method2 = clazz.getMethod(method, HttpServletRequest.class, HttpServletResponse.class); /** 3.调用方法 **/ // this调用 ,参数有request,response Object path = method2.invoke(this, request, response); System.out.println("path " + path); /** 4.跳转页面 **/ if (path != null) { request.getRequestDispatcher("/WEB-INF/jsp/" + path.toString() + ".jsp").forward(request, response); } } catch (Exception e) { e.printStackTrace(); } } protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { request.setCharacterEncoding("utf-8"); doGet(request, response); }}
阅读全文
0 0
- 反射reflect
- 反射reflect
- 反射Reflect
- 反射Reflect
- Reflect反射
- reflect(反射)
- 反射Reflect
- 反射 Reflect
- reflect(反射)
- reflect--反射
- reflect(反射)
- 反射reflect
- 反射reflect
- 0610-----反射reflect
- java 反射机制 reflect
- java反射机制reflect
- 反射机制(Reflect)
- Java 反射,reflect
- Win8.1以及win10以上系统 安装msi文件方法
- SLAM/openCV基础笔记
- Lintcode157 Unique Characters solution 题解
- Javaweb-xml编程-考生成绩管理系统(1)
- 学习samtools
- 反射reflect
- JavaWeb学习笔记-java基础-9-javabean(2)
- 实验吧WEB--拐弯抹角
- 2121
- maven 脚本
- 简单的注册登录展示小系统总结
- GitHub上传及删除
- 单点登录
- c++小技巧(一)模版类不同具化类之间的转换