通过java反射得到javabean的属性名称和值

        Field fields[]=cHis.getClass().getDeclaredFields();//cHis 是实体类名称
        String[] name=new String[fields.length];
        Object[] value=new Object[fields.length];

        try {
            Field.setAccessible(fields, true);
            for (int i = 0; i < name.length; i++) {
                name[i] = fields[i].getName();
                System.out.println(name[i] + "-> ");
                value[i] = fields[i].get(cHis);//cHis 是实体类名称
                System.out.println(value[i]);
            }
        } catch (Exception e) {
            e.printStackTrace();
        }

通过反射获取类属性字段 以及 调用类方法  以下方法未测试应该可以
public class ModelClassHelper {

    public static HashMap<String,Class> init(String classPath)
    {
        try {
            //"com.geocompass.model.STSTBPRPModel"
            HashMap<String,Class> fieldHashMap=new HashMap<String,Class>();
            Class cls = Class.forName(classPath);  //com.geocompass.model.STSTBPRPModel
            Field[] fieldlist = cls.getDeclaredFields();
            for (int i = 0; i < fieldlist.length; i++) {
                Field fld = fieldlist[i];
                fieldHashMap.put(fld.getName(), fld.getType());
//                System.out.println("name = " + fld.getName());
//                System.out.println("decl class = " + fld.getDeclaringClass());
//                System.out.println("type = " + fld.getType());
//                System.out.println("-----");
                }
            return fieldHashMap;
        } catch (ClassNotFoundException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
        return null;
    }

 public static String getTableName(String classPath)
 {
  try {
   Class cls = Class.forName(classPath);
   Method test=cls.getDeclaredMethod("getTableName" );
   Object invoke = test.invoke(cls.newInstance());
   return invoke.toString();
   //cls.asSubclass(TabModel.class);
  } catch (ClassNotFoundException e) {
   // TODO Auto-generated catch block
   e.printStackTrace();
  } catch (SecurityException e) {
   // TODO Auto-generated catch block
   e.printStackTrace();
  } catch (NoSuchMethodException e) {
   // TODO Auto-generated catch block
   e.printStackTrace();
  } catch (IllegalArgumentException e) {
   // TODO Auto-generated catch block
   e.printStackTrace();
  } catch (IllegalAccessException e) {
   // TODO Auto-generated catch block
   e.printStackTrace();
  } catch (InvocationTargetException e) {
   // TODO Auto-generated catch block
   e.printStackTrace();
  } catch (InstantiationException e) {
   // TODO Auto-generated catch block
   e.printStackTrace();
  }
  return "";
 }}

利用反射技术动态获取任意Java类实例的属性值

package org.apache.easframework.core.entity.impl;

import java.lang.reflect.Field;

public class TestEntity {

 private String code;
 private String name;

 public void setCode(String code)
 {
  this.code = code;
 }

 public String getCode()
 {
  return this.code;
 }

 public void setName(String name)
 {
  this.name = name;
 }

 public String getName()
 {
  return this.name;
 }

 public static void main(String[] args) throws SecurityException, ClassNotFoundException, IllegalArgumentException, IllegalAccessException
 {
  TestEntity obj = new TestEntity();
  obj.setName("name value");
  obj.setCode("code value");
  Field[] fds = Class.forName
  ("org.apache.easframework.core.entity.impl.TestEntity").getDeclaredFields();

  System.out.println(fds.length);
  for(int i=0;i<fds.length;i++)
  {
   System.out.println(fds[i].get(obj));

  }
 }

}

通过java反射得到javabean的属性名称和值参考的更多相关文章

  1. 利用Java反射实现JavaBean对象相同属性复制并初始化目标对象为空的属性的BeanUtils

    有时遇到将数据传输对象转换成JSON串会将属性值为空的属性去掉,利用Java反射实现JavaBean对象数据传输对象的相同属性复制并初始化数据传输对象属性为空的属性,然后转换成JSON串 packag ...

  2. Java反射获取对象成员属性,getFields()与getDeclaredFields()方法的区别

    Java反射获取对象成员属性,getFields()与getDeclaredFields()方法的区别 ​ 在工作中遇到一个问题,就是你需要去判断某个字符串是不是对象的某个成员属性名,然后根据判断结果 ...

  3. js遍历对象所有的属性名称和值

    /* * 用来遍历指定对象所有的属性名称和值 * obj 需要遍历的对象 * author: Jet Mah * website: http://www.javatang.com/archives/2 ...

  4. 遍历JavaScript某个对象所有的属性名称和值

    /* * 用来遍历指定对象所有的属性名称和值 * obj 需要遍历的对象 */ function allPrpos(obj) { // 用来保存所有的属性名称和值 var props = " ...

  5. java反射获取Object的属性和值

    在看反射顺便做个笔记,目前知道的反射的Object都是要有对象的也就是实体Bean. import java.lang.reflect.Field; import java.util.ArrayLis ...

  6. java-读取类中的属性名称和值

    方法 /** * 获取类中的所有属性明名称和值(因涉及到可能会是继承关系的父类,所以从f中去属性名称,从f2中取值,两个可以一样,也可以使父类) * @param f:读取属性类(如果取父类的,则这里 ...

  7. 使用Expression tree访问类的属性名称与值

    表达式树Expression是Linq中一项比较重要的功能,对其深刻了解Lamda以及计算表达式有很大的帮助. 下面是利用 Expression<Func<Object>>[] ...

  8. java 反射获取类的属性 类型 名称和值

    /** * 获取属性类型(type),属性名(name),属性值(value)的map组成的list * */ private List getFiledsInfo(Object o){ Field[ ...

  9. java反射获取字段的属性值,以及为字段赋值等方法

    1.获取某个类的属性值 /*利用getter方法获取值(首字母大写) CjJssetDTO obj: */ String filedName = "Cj"+(i+1); Class ...

随机推荐

  1. 跨交换机相同vlan内的通信(trunk模式)

    当一个公司的小型局域网内部,处于不同楼层的主机处在同一个虚拟局域网内,连接到不同的交换机上,这时候就需要相同虚拟局域网内部的主机进行跨交换机进行通信. 通过设置交换机之间相连接的端口开启trunk模式 ...

  2. 实现javascript下的模块组织

    前面的话 java有类文件.Python有import关键词.Ruby有require关键词.C#有using关键词.PHP有include和require.CSS有@import关键词,但是对ES5 ...

  3. [刷题]算法竞赛入门经典(第2版) 5-1/UVa1593 - Alignment of Code

    书上具体所有题目:http://pan.baidu.com/s/1hssH0KO 代码:(Accepted,0 ms) //UVa1593 - Alignment of Code #include&l ...

  4. 浅论Javascript在汽车信号测试中的应用

    起因 上周老板又给了我这个车辆工程毕业的码农一份工作: 要我写一个测试台架出来. 我先简单的分析了测试台架的几种典型的工况: 1.发送一个CAN信号,测试能否查到. 2.发送一个信号,是否能在规定时间 ...

  5. Ajax,纯Js+Jquery

    AJAX:Asynchronous Javascript and xml 异步,Js和Xml 交互式网页开发 不刷新页面,与服务器交互 详情请参照Jquery工具指南用在浏览器端的技术,无刷新,通过X ...

  6. Java IO详解(六)------随机访问文件流

    File 类的介绍:http://www.cnblogs.com/ysocean/p/6851878.html Java IO 流的分类介绍:http://www.cnblogs.com/ysocea ...

  7. OpenCV探索之路(七):霍夫变换

    我们如何在图像中快速识别出其中的圆和直线?一个非常有效的方法就是霍夫变换,它是图像中识别各种几何形状的基本算法之一. 霍夫线变换 霍夫线变换是一种在图像中寻找直线的方法.OpenCV中支持三种霍夫线变 ...

  8. 对JVM运行时常量池的一些理解

    1.JVM运行时常量池在内存的方法区中(在jdk8中,移除了方法区) 2.JVM运行时常量池中的内容主要是从各个类型的class文件的常量池中获取,对于字符串常量,可以调用intern方法人为添加,而 ...

  9. 使用Post方法模拟登陆爬取网页

    最近弄爬虫,遇到的一个问题就是如何使用post方法模拟登陆爬取网页.下面是极简版的代码: import java.io.BufferedReader; import java.io.InputStre ...

  10. 项目管理之 Git 管理软件 SourceTree for Mac

    Git 项目管理: Mac Terminal 生成 Git 秘钥流程: git config --global user.name "yourname" git config -- ...