使用反射设置对象的字段值

package com.sadhu;
import java.util.*;
import java.lang.reflect.*;
/**

*/
public class Sample
{
    public static void main(String[] args)throws Exception
    {
        Class cl = Class.forName("com.sadhu.ReflectTest");
        Object rt = cl.newInstance();//创建一个对象
        Field[] field = cl.getDeclaredFields();
        for(Field item : field)
        {
            item.setAccessible(true);//值为 true 则指示反射的对象在使用时应该取消 Java 语言访问检查。值为 false 则指示反射的对象应该实施 Java 语言访问检查。 
            if(item.getType() == String.class)
            {
                item.set(rt,"张三");
            }
            if(item.getType() == int.class)
            {
                item.set(rt,10);
            }
            System.out.println(item.get(rt));//输出当前字段在对象中的值是多少
        }

    }
}
class ReflectTest
{
    private String name;
    private int age;
    public void setName(String aName)
    {
        this.name = aName;
    }
    public String getName()
    {
        return this.name;
    }
    public void setAge(int aAge)
    {
        this.age = aAge;
    }
    public int getAge()
    {
        return this.age;
    }
    public ReflectTest()
    {
        System.out.println("调用无参数构造函数!");
    }
}
/**
输出结果:
调用无参数构造函数!
张三
10
*/

使用反射设置对象的字段值

时间: 2024-10-10 16:09:13

使用反射设置对象的字段值的相关文章

Java 使用反射拷贝对象一般字段值

在<Java解惑>上面看到第八十三例--诵读困难者,要求使用非反射实现单例对象的拷贝.查阅了部分资料,先实现通过反射拷贝对象. 1. 编写需要被拷贝的对象Person package com.scl.j2se.reflectjavabean; public class Person { public String getName() { return name; } public void setName(String name) { this.name = name; } public St

泛型约束和利用反射修改对象属性的值

周日了都,昨天休息了一天,今天想想得敲敲代码练习一下,如下关于泛型约束和利用反射修改对象属性的值的, 都挺简单的,呵呵,但时间一长,不经常使用还容易忘记在此就当记录一下了, 首先泛型代码一般是如下的情形: 加了泛型约束,只允许引用类型并且是只能是无参数的构造函数的类型才能传入,也就是不允许给类构造参数传递实参,否则将报错. 错误 1 “XXXXXX.pros”必须是具有公共的无参数构造函数的非抽象类型,才能用作泛型类型或方法“ 1 public static T GetObject<T>(T

java反射获取对象的属性值和对象属性中的子属性值

近段时间在做web项目,前端使用的是jQuery EasyUI. 为方便需要,准备做一个前端通用的Datagird导出Excel功能,博主也考虑过思路和最终功能,1.前端选中行导出:2.当前页导出:3.当前过滤条件导出. 想偷懒在网上找找已有的代码改改,发现大部分只能满足个别需求,使用JS导出只能满足前端,使用代码才能实现3功能. ...... 好了,说了一堆废话,回归正题,本文是在做通用自定义字段导出时所需要,根据属性名去查找对象和子对象,找到对应属性值,抓取回来放到Excel中. 直接上代码

反射_4.案例:使用反射替换对象所有字符串值

package com.day2; import java.lang.reflect.Field; public class T4_ReflectReplaceString { public static void main(String[] args) { Demo demo1 = new Demo(); try { //调用该方法 reflectReplaceString(demo1); System.out.println(demo1); } catch (Exception e) { e

通过反射判断对象的属性值是否为空

问题产生场景? 在项目开发过程中我采用了表单内部嵌套列表的形式提交数据,将表单于列表数据同时提交保存.   有时候管理人的出资人结构我新增了多条  这时候并没有真正的保存到数据库,而是保存在了页面前端临时保存等待真正的提交  我操作删除 这时候删除实现的方式是 function delFundManage(obj){ $(obj).parent().parent().remove();} 移除了 但是在创建列表的时候 进行移除第一个 arr[1]  这里并没有将修改为arr[0] 这里提交到后台

反射获取对象的属性值

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 ; } publ

Python3基础 setattr 设置对象的属性值,如果属性不存在就创建一个

? python : 3.7.0 OS : Ubuntu 18.04.1 LTS IDE : PyCharm 2018.2.4 conda : 4.5.11 type setting : Markdown ? code """ @Author : 行初心 @Date : 18-9-23 @Blog : www.cnblogs.com/xingchuxin @GitHub : github.com/GratefulHeartCoder """ cl

设置基础资料字段值

在单据界面上,给单据体字段赋值时,使用this.Model.SetValue(key, value, row),需要传入单据体行的索引,而单据头却不需要传入行索引. 在单据转换插件中,采用DynamicProperty.SetValue(obj, value),第一参数是数据包,如果给单据头字段赋值,则传入单据数据包,如果给单据体字段赋值,则传入单据体数据包.两种情况在赋值语句上,没有任何差别. 附:给仓库字段赋值代码示例BaseDataField stockFld = e.TargetBusi

SAP ABAP编程 批量查询事务码对应的授权对象和字段值

1.事物代码 2.选择事务代码 3.结果如下: