开发者社区> imzdx> 正文
阿里云
为了无法计算的价值
打开APP
阿里云APP内打开

反射获取对象的属性值

简介: 1 > bean 对象 package com.whbs.bean;   public class UserBean {     private Integer id ;     private int age ;     private String name ;     p...
+关注继续查看

1 > bean 对象

package com.whbs.bean;

 

public class UserBean {

    private Integer id ;

    private int age ;

    private String name ;

    private String address ;

   

    public UserBean(){

       System. out .println( " 实例化 );

    }

   

    public Integer getId() {

       return id ;

    }

    public void setId(Integer id) {

       this id = id;

    }

    public int getAge() {

       return age ;

    }

    public void setAge( int age) {

       this age = age;

    }

    public String getName() {

       return name ;

    }

    public void setName(String name) {

       this name = name;

    }

    public String getAddress() {

       return address ;

    }

    public void setAddress(String address) {

       this address = address;

    }

   

   

   

}

 

2 > 反射测试

 

package com.whbs.test;

 

import java.lang.reflect.Field;

import java.lang.reflect.Method;

 

import com.whbs.bean.UserBean;

 

public class Test1 {

 

    public static void main(String[] args) throws Exception {

 

      

       /*

         * 实列化类 方法 1

         */

       //String classPath = "com.whbs.bean.UserBean";

       //Class cla = Test1.class.getClassLoader().loadClass(classPath);

       //Object ob = cla.newInstance();

      

       /*

         * 实列化类 方法 2

         */

       UserBean bean = new UserBean();

       bean.setId(100);

       bean.setAddress( " 武汉 );

      

       // 得到类对象

       Class userCla = (Class) bean.getClass();

      

       /*

         * 得到类中的所有属性集合

         */

       Field[] fs = userCla.getDeclaredFields ();

       for int i = 0 ; i < fs. length ; i++){

           Field f = fs[i];

           f.setAccessible( true ); // 设置些属性是可以访问的

           Object val = f.get(bean); // 得到此属性的值    

      

           System. out .println( "name:" +f.getName()+ "/t value = " +val);

          

           String type = f.getType().toString(); // 得到此属性的类型

           if (type.endsWith( "String" )) {

              System. out .println(f.getType()+ "/t 是 String" );

              f.set(bean, "12" ) ;        // 给属性设值

           } else if (type.endsWith( "int" ) || type.endsWith( "Integer" )){

              System. out .println(f.getType()+ "/t 是 int" );

              f.set(bean,12) ;       // 给属性设值

           } else {

              System. out .println(f.getType()+ "/t" );

           }

          

       }

      

      

       /*

         * 得到类中的方法

         */

       Method[] methods = userCla.getMethods();

       for int i = 0; i < methods. length ; i++){

           Method method = methods[i];

           if (method.getName().startsWith( "get" )){

              System. out .print( "methodName:" +method.getName()+ "/t" );

              System. out .println( "value:" +method.invoke(bean)); // 得到 get 方法的值

           }

       }

    }

 

}

 

转至: http://blog.csdn.net/xiaopeng__/article/details/6950205

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
对象中是否有某一个属性 in
对象中是否有某一个属性 in
21 0
如何使用反射获取类对象
如何使用反射获取类对象
38 0
获取对象属性类型、属性名称、属性值的研究:反射和JEXL解析引擎
同步发布:http://www.yuanrengu.com/index.php/20170511.html 先简单介绍下反射的概念:java反射机制是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法;对于任意一个对象,都能够调用它的任意方法和属性;这种动态获取信息以及动态调用对象方法的功能称为java语言的反射机制。
1507 0
反射之动态创建对象
前言 C#有关反射的话题已经是个老生常谈的话题,也许园友一看这标题都不屑去看了,但是既然拿出来讲必有讲之道理,当然,不喜勿喷,高手请绕道!直入话题。 讨论  定义一个Person类代码如下 1 public class Person 2 { 3 4 ...
712 0
C#获取EF实体对象或自定义属性类的字段名称和值
原文:C#获取EF实体对象或自定义属性类的字段名称和值 在年前上班的时候遇到了一个问题是这样描述的:我前台设计一个页面,是标签和文本框,当用户修改了哪个文本框的值,将该修改前的值、修改后的值,该值对应的字段,该值对应的行id获取到保存到数据库的某张表里。
1366 0
+关注
imzdx
数据库相关技术专家
322
文章
0
问答
文章排行榜
最热
最新
相关电子书
更多
低代码开发师(初级)实战教程
立即下载
阿里巴巴DevOps 最佳实践手册
立即下载
冬季实战营第三期:MySQL数据库进阶实战
立即下载