1、java利用反射机制判断对象的属性是否为空:

Map<String,String> validateMap = new LinkedHashMap<String, String>();

validateMap.put("serial", "编号");
validateMap.put("major", "专业");
public static <T> String validateFiledIsNull(Map<String,String> fileds,T obj) throws Exception{
String ret ="";
for(String key:fileds.keySet()){
String getMethodStr = "get" + key.substring(0,1).toUpperCase()+key.substring(1);
Method m = obj.getClass().getMethod(getMethodStr);
Object value = m.invoke(obj);
if(value==null || value.toString().trim().equals("")){
if(!validateString(ret)){
ret=fileds.get(key);
}else{
ret+=","+fileds.get(key);
}
}
}
return ret;
} 2、获取该属性的值:
protected void setData(){
//保存通过setAttr方法存储的数据
Enumeration<String> attrs = getAttrNames();
ArrayList<String> a = Collections.list(attrs);
a.removeAll(Constants.exceptAttrs);//去除无关的数据
for(String attrName : a){
dataMap.put(attrName, getAttr(attrName));
} //保存AppBaseController的protected属性的数据
Field[] fields = AppBaseController.class.getDeclaredFields();
for(Field field : fields){
//设置对象的访问权限,保证对private的属性的访问
// field.setAccessible(true);
if(Modifier.PROTECTED == field.getModifiers()){
try {
Object value = field.get(this);
if(value != null){
setAttr(field.getName(), value);
dataMap.put(field.getName(), value);
}
} catch (IllegalAccessException e) {
e.printStackTrace();
}
}
}
} 3、 设置该属性的值:
protected void setParams(){
Enumeration<String> paraNames = getParaNames();
ArrayList<String> a = Collections.list(paraNames);//参数名列表
Field[] fields = AppBaseController.class.getDeclaredFields();//AppBaseController属性列表 for(Field field : fields){
field.setAccessible(true);//Modifier.PROTECTED == field.getModifiers();
if("java.lang.String".equals(field.getType().getName())){//String类型的属性
for(String paraName : a){
String value = getPara(paraName);
String paraLowerName = paraName.replaceAll("_", "").toLowerCase();
if(paraLowerName.equals(field.getName().toLowerCase())){//如果参数名有对应的属性名则赋值
try {
field.set(this, value);
} catch (IllegalAccessException e) {
e.printStackTrace();
}
}
}
}
}
}

java利用反射机制判断对象的属性是否为空以及获取和设置该属性的值的更多相关文章

  1. 【转】Java利用反射机制访问私有化构造器

    Java利用反射机制访问私有化构造器 博客分类: java   我们都知道,当一个类的构造方法被设为私有的时候(private),在其他类中是无法用new来实例化一个对象的. 但是有一种方法可以把带有 ...

  2. JAVA中利用反射机制进行对象和Map相互转换的方法

    JAVA的反射机制主要作用是用来访问对象的属性.方法等等.所以,JAVA中对象和Map相互转换可以利用JAVA的反射机制来实现.例子如下: 一.对象转Map的方法 public static Map& ...

  3. Java——利用反射机制将表单数据自动填充到JavaBean中

    以一个案例介绍反射机制的一种常见的使用场景,以及具体实现. 1.本文案例 在编写Java Web应用程序时,使用表单提交数据是一个必不可少的环节,后台对于前台使用表单提交的数据需要能够从请求中解析,并 ...

  4. java 利用反射机制,获取实体所有属性和方法,并对属性赋值

    一个普通的实体Person: private int id; private String name; private Date createdTime;...//其它字段// get set方法 . ...

  5. JAVA利用反射映射JSON对象为JavaBean

    关于将JSONObject转换为JavaBean,其实在JSONObject中有对于的toBean()方法来处理,还可以根据给定的JsonConfig来处理一些相应的要求,比如过滤指定的属性 //返回 ...

  6. java利用反射机制获取list中的某个字段并以list形式返回

    public static<T> List<Object> listToList(Collection<T> list,String fieldName) thro ...

  7. java利用反射调用类的某个方法

    java利用反射机制 可以动态调用某个类的某个方法,在 扩展系统功能或提供对外接口时经常用的到. 代码如下: 打印类Print.java package com.test.reflct; /** * ...

  8. java的反射机制和javassist、asm

    1.java的反射机制,可以帮助我们在运行的时候获取我们引用的java类相关的信息,包括类的名字.所包含的方法名字.方法参数等等 2.javassit这个jar包,大概看了下,更厉害,它可以直接操作字 ...

  9. java 中利用反射机制获取和设置实体类的属性值

    摘要: 在java编程中,我们经常不知道传入自己方法中的实体类中到底有哪些方法,或者,我们需要根据用户传入的不同的属性来给对象设置不同的属性值,那么,java自带的反射机制可以很方便的达到这种目的,同 ...

随机推荐

  1. django 官方文档下载

    今天发现自己的django文档有点过时了,于是想去下载一份新,找了老半天才找到pdf的下载地址:于是把它记录下来,希望以后可以直接用. 一.进行django官方网站: 二.文档的pdf文件就在docu ...

  2. LeetCode总结 -- 树的求和篇

    树的求和属于树的题目中比較常见的,由于能够有几种变体,灵活度比較高,也能够考察到对于树的数据结构和递归的理解. 一般来说这些题目就不用考虑非递归的解法了(尽管事实上道理是跟LeetCode总结 -- ...

  3. MySQL Fabric部署

    架构描写叙述: 一台主机上安装4个MySQL 服务,当中一个MySQL服务用于存储MySQL Fabric后台数据:另外3个MySQL服务用于主从架构測试.一个主+两个从. 第一部分:二进制方式安装M ...

  4. android.graphics(1) - Paint, Canvas, drawLine, drawPoint, drawRect, drawRoundRect, drawCircle, drawOval, drawArc

    一.Paint与Canvas 像我们平时画图一样,需要两个工具,纸和笔.Paint就是相当于笔,而Canvas就是纸,这里叫画布. 所以,凡有跟要要画的东西的设置相关的,比如大小,粗细,画笔颜色,透明 ...

  5. 深入 Spring 系列之静态资源处理

    http://blog.csdn.net/xichenguan/article/details/52794862

  6. LinkQ 组合查询与分页

    1.以开头查 public List<Car> Select1(string a){ return con.Car.Where(r => r.Name.StartsWith(a)). ...

  7. JSF中获得HTTP SESSION和Request

    转载自:http://blog.sina.com.cn/s/blog_872758480100waew.html 为了保持向后兼容,我们有时可能会需要访问session对象.在JSF中可以通过如下方式 ...

  8. [system]c/c++调用cat命令

    因为cat并不是一个带返回的命令,而是输出到标准输出.所以使用system("cat /sys/class/gpio/...."); 得不到我们想要的结果. 下面的/bin/ls同 ...

  9. input checkbox 选中问题

    对html控制不熟的人,估计被checkbox的选中问题发愁了,因为input的checkbox只有选中属性 checked='checked' 但是它有另外一个规则就是Request的时候 只有选中 ...

  10. 打开palette面板