ResponseUtil反射制造唯一结果
调用:通过反射调用同一个类型的返回值
return fillResponse(response,Constants.SUCCESS,"获取数据成功","taskList",taskList);
(1)
/**
* 回复结果
* @param obj
* @param code
* @param description
* @param paramName
* @param paramValue
* @return
*/
private String fillResponse(final Object obj ,final String code , final String description,final String paramName,final Object paramValue ){
return ResponseUtil.fillResponse(obj, code, description, paramName, paramValue);
}
private String fillResponseBase(final Object obj ,final String code , final String description){
return ResponseUtil.fillResponseBase(obj, code, description);
}
(2)
package com.venustech.scanner.webservice.vulntask.util;
import java.lang.reflect.Method; import com.venustech.vwf.utils.json.JsonUtils;
/**
*
* 类说明.优化使用
* <pre>
* 2015年12月11日 songjian
* </pre>
*/
public class ResponseUtil {
/**
* 针对只有code和description的情况 +
* @param object
* @param code
* @param description
* @param paramName
* @param paramVal
* @return
*/
public static <T> String fillResponse(final T object,final String code , final String description ,final String paramName , final Object paramVal) {
if (object == null) {
return null;
}
Class<T> clazz = (Class<T>) object.getClass();
try {
Method get_Method_code = clazz.getMethod("getCode" ); //获取getMethod方法
Method set_Method_code = clazz.getMethod("setCode", get_Method_code.getReturnType());//获得属性set方法
set_Method_code.invoke(object, code); Method get_Method_des= clazz.getMethod("getDescription" ); //获取getMethod方法
Method set_Method_des = clazz.getMethod("setDescription", get_Method_des.getReturnType());//获得属性set方法
set_Method_des.invoke(object, description);
if(paramName!=""){
Method get_Method = clazz.getMethod("get" + getMethodName(paramName)); //获取getMethod方法
Method set_Method = clazz.getMethod("set" + getMethodName(paramName), get_Method.getReturnType());//获得属性set方法
set_Method.invoke(object, paramVal);
}
} catch (Exception e) {
}
return JsonUtils.toJson(object);
}
/**
* 针对只有code和description的情况
* @param object
* @param code
* @param description
* @return
*/
public static <T> String fillResponseBase(final T object,final String code , final String description) {
if (object == null) {
return null;
}
Class<T> clazz = (Class<T>) object.getClass();
try {
Method get_Method_code = clazz.getMethod("getCode" ); //获取getMethod方法
Method set_Method_code = clazz.getMethod("setCode", get_Method_code.getReturnType());//获得属性set方法
set_Method_code.invoke(object, code); Method get_Method_des= clazz.getMethod("getDescription" ); //获取getMethod方法
Method set_Method_des = clazz.getMethod("setDescription", get_Method_des.getReturnType());//获得属性set方法
set_Method_des.invoke(object, description);
} catch (Exception e) {
}
return JsonUtils.toJson(object);
} private static String getMethodName(final String fildeName) {
byte[] items = fildeName.getBytes();
items[0] = (byte) ((char) items[0] - 'a' + 'A');
return new String(items);
}
}
ResponseUtil反射制造唯一结果的更多相关文章
- .NET面试题系列[6] - 反射
反射 - 定义,实例与优化 在面试中,通常会考察反射的定义(操作元数据),可以用反射做什么(获得程序集及其各个部件),反射有什么使用场景(ORM,序列化,反序列化,值类型比较等).如果答得好,还可能会 ...
- C# 之 反射性能优化2
问题回顾 在上篇博客中,我介绍了优化反射的第一个步骤:用委托调用代替直接反射调用. 然而,那只是反射优化过程的开始,因为新的问题出现了:如何保存大量的委托? 如果我们将委托保存在字典集合中,会发现这种 ...
- 《C#从现象到本质》读书笔记(八)第10章反射
<C#从现象到本质>读书笔记(八)第10章反射 个人感觉,反射其实就是为了能够在程序运行期间动态的加载一个外部的DLL集合,然后通过某种办法找到这个DLL集合中的某个空间下的某个类的某个成 ...
- 深入理解Java String#intern() 内存模型
原文出处: codelog.me 大家知道,Java中string.intern()方法调用会先去字符串常量池中查找相应的字符串,如果字符串不存在,就会在字符串常量池中创建该字符串然后再返回. 字符串 ...
- JVM学习六:JVM之类加载器之双亲委派机制
前面我们知道类加载有系统自带的3种加载器,也有自定义的加载器,那么这些加载器之间的关系是什么,已经在加载类的时候,谁去加载呢?这节,我们将进行讲解. 一.双亲委派机制 JVM的ClassLoader采 ...
- JVM体系结构之七:持久代、元空间(Metaspace) 常量池==了解String类的intern()方法、常量池介绍、常量池从Perm-->Heap
一.intern()定义及使用 相信绝大多数的人不会去用String类的intern方法,打开String类的源码发现这是一个本地方法,定义如下: public native String inter ...
- Java Exception & RTTI
Exception Try { ... ... } catch (Exception ex) { …; throw new Throwable(ex); } catch (Throwable ex) ...
- JAVA RTTI
基础类可接收我们发给派生类的任何消息,因为两者拥有完全一致的接口.我们要做的全部事情就是从派生上溯造型,而且永远不需要回过头来检查对象的准确类型是什么.所有细节都已通过多态性获得了完美的控制. 但经过 ...
- 常见DDoS攻击
导航: 这里将一个案例事项按照流程进行了整合,这样观察起来比较清晰.部分资料来自于Cloudflare 1.DDoS介绍 2.常用DDoS攻击 3.DDoS防护方式以及产品 4.Cloudflare ...
随机推荐
- Python科学计算环境推荐——Anaconda
最近在用Python做中文自然语言处理.使用的IDE是PyCharm.PyCharm确实是Python开发之首选,但用于科学计算方面,还略有欠缺.为此我尝试过Enthought Canopy,但Can ...
- hnu Counting ones 统计1-n 二进制中1的个数
Counting ones Time Limit: 1000ms, Special Time Limit:2500ms, Memory Limit:65536KB Total submit users ...
- 几篇不错的基础css博客转载
CSS 巧用 :before和:after:http://web.jobbole.com/85083/ css清除元素间距:http://ouvens.github.io/frontend-css/2 ...
- jquery.util.easyui.dialog
(function ($) { var $parent = parent.$; //获取弹出窗口数据集合 function getDialogs() { var dialogs = $parent(& ...
- 基于Node的PetShop,RESTful API以及认证
前篇 - 基本认证,用户名密码 后篇 - OAuth2 认证 由于宠物店的业务发展需要,我们需要一种更加便捷的方式来管理日益增多的宠物和客户.最好的方法就是开发一个APP,我可以用这个APP来添加.更 ...
- VS2015使用技巧 为什么我们可以输入cw后按两下tab键出现console.writeline
镇场诗: 大梦谁觉,水月中建博客.百千磨难,才知世事无常. 今持佛语,技术无量愿学.愿尽所学,铸一良心博客.------------------------------------------ 为什么 ...
- Spring 框架 详解 (一)
Spring是分层的JavaSE/EE full-stack(一站式) 轻量级开源框架 * 分层: * SUN提供的EE的三层结构:web层.业务层.数据访问层(持久层,集成层) * Struts2是 ...
- C++ 函数后加const
1.非静态成员函数后面加const(加到非成员函数或静态成员后面会产生编译错误)2.表示成员函数隐含传入的this指针为const指针,决定了在该成员函数中, 任意修改它所在的类的成员的操作都是 ...
- 4,帮助命令man
一:man man是manual的缩写,文档的意思 man man(1),代表man下是分用户级别的,
- [转] Android获取Manifest中<meta-data>元素的值
转自: http://www.2cto.com/kf/201303/194824.html android 开发中: 在AndroidManifest.xml中,<meta-data> ...