项目中需要java后台查询并组装前台grid的数据,数据行数不定,数据行定义不定,开始用了最原始的方法,写了几百行,就是前台需要什么字段后台拼接什么字段,java代码冗余量非常大,并且不够灵活,一旦前台页面需要调整字段顺序或者增加一个字段.删除一个字段时,后台需要修改java代码.经过一上午的重构努力,改为数据库配置字段与字段对应方法,java利用反射动态调用对象方法从而获取字段值,拼接为list传递给前台.这样修改后,代码干净整洁,非常灵活,只要是对象中存在的方法,可以在数据库中任意配置显示与…
IEnumerable<T>的使用 创建一个IEnumerable对象 List<string> fruits = new List<string> { "apple", "pear", "banana", "orange" }; IEnumerable<string> f = fruits as IEnumerable<string>; 获取的迭代器一开始指向为空…
http://blog.csdn.net/coolcoffee168/article/details/5835143…
func Call(m map[string]interface{}, name string, params ...interface{}) ([]reflect.Value, error) { f := reflect.ValueOf(m[name]) if len(params) != f.Type().NumIn() { return nil, errors.New("the number of input params not match!") } in := make([]…
前言 大家在Coding的时候,经常会遇到这样一个情况,根据不同的条件去执行对应的代码.我们通常的处理方式是利用if-else判断,或者直接switch-case,特别是jdk1.6之后,swith开始支持判断String类型了. 但是如果有几十种情况上百种情况,用if-else来处理这段逻辑,代码看着特别不舒服. 解决这个麻烦有好几种办法,比如自定义注解.Spring结合策略模式.反射或者枚举. 下面分享一下使用Guava工具类通过反射动态调用方法. 业务描述 插座统计:数据库每添加一个插座实…
原文:http://blog.csdn.net/woshinia/article/details/11766567 1,今天和一位朋友谈到父类私有方法的调用问题,本来以为利用反射很轻松就可以实现,因为在反射看来根本不区分是否是private的,没有想到调用本身的私有方法是可以的,但是调用父类的私有方法则不行,后来纠其原因很有可能是因为getDeclaredMethod方法和getMethod方法并不会查找父类的私有方法,于是只好自己写递归了,经过尝试果然如此.把代码放出来方便更多人.这段代码可以…
作者:54dabang 在spring的学习过程之中,我们能够看出通过配置文件来动态管理bean对象的优点(松耦合 能够让零散部分组成一个总体,而这些总体并不在意之间彼此的细节,从而达到了真正的物理上的疏散耦合,而非逻辑,有了IOC之后.我们能够让SPRING充当各框架中的整合器.把技术框架进行完美的结合). Spring实现的一个重要的机制是通过反射(java.lang.reflect)读取配置文件,通过配置文件来动态生成配置文件里的类对象.Java动态载入类主要是为了不改变主程序代码.通过改…
用反射动态调用类成员,需要Type类的一个方法:InvokeMember.对该方法的声明如下(摘抄于MSDN): publicobject InvokeMember(    string name,    BindingFlags invokeAttr,    Binder binder,    object target,    object[] args ); 参数 name  String,它包含要调用的构造函数.方法.属性或字段成员的名称. - 或 - 空字符串(""),表示调…
使用反射动态调用ActiveX控件 袁永福 2018-3-2 ■■■■问题描述: 目前的基于.NET平台的软件研发中仍然存在大量的对COM及ActiveX控件的调用.使用C#调用ActiveX控件时一般是使用vs.net工具的添加COM引用时自动生成的互操作性程序集.这种方法操作简单,能保证一定的性能.但会产生额外的程序文件,不利于应用软件的简洁部署.而且当开发环境和运行环境使用的ActiveX控件的版本不一致[袁永福原创]时还容易出错. 笔者长期从事基于.NET平台的通用产品类软件研发.[袁永…
有时遇到将数据传输对象转换成JSON串会将属性值为空的属性去掉,利用Java反射实现JavaBean对象数据传输对象的相同属性复制并初始化数据传输对象属性为空的属性,然后转换成JSON串 package com.banksteel.util; import java.lang.reflect.Field;import java.lang.reflect.Method;import java.util.ArrayList;import java.util.Arrays;import java.ut…