精华内容
下载资源
问答
  • 主要介绍了Java 通过反射给实体类赋值操作,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
  • Java反射赋值

    2020-07-06 10:23:03
    Entity entity= new Entity();...String field = “我是要被赋值进去的”; Field name = entity.getClass().getDeclaredField(“fieldName”); name.setAccessible(true); name.set(excelData, field);

    Entity entity= new Entity();
    String field = “我是要被赋值进去的”;
    Field name = entity.getClass().getDeclaredField(“fieldName”);
    name.setAccessible(true);
    name.set(excelData, field);

    展开全文
  • 主要介绍了 java 利用反射机制,获取实体所有属性和方法,并对属性赋值的相关资料,需要的朋友可以参考下
  • java反射(4)反射赋值

    2017-10-14 09:30:57
    本篇介绍利用反射给对象赋值 方法1 获得并使用默认构造器创建类的对象 并对对象赋值 这里类用的是Person类 属性有 id ,name ,address 来做例子 public class Person { private Integer id; private String name; ...

    本篇介绍利用反射给对象赋值

    方法1 获得并使用默认构造器创建类的对象   并对对象赋值  

    这里类用的是Person类   属性有 id ,name ,address  来做例子

    public class Person {
    	private Integer id;
    	private String name;
    	private String address;
    	public Integer getId() {
    		return id;
    	}
    	public void setId(Integer id) {
    		this.id = id;
    	}
    	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;
    	}
    	@Override
    	public String toString() {
    		StringBuilder bd=new StringBuilder();
    		bd.append("person ");
    		bd.append("[id="+id+", name="+name+",address="+address+"]");
    		return bd.toString();
    		
    	}
    	
    	public Person() {
    		super();
    	}
    	public Person(Integer id, String name, String address) {
    		super();
    		this.id = id;
    		this.name = name;
    		this.address = address;
    	}
    	
         
    	
    	
    
    }
    
    代码如下:

    public static void main(String[] args) throws Exception {
    		// TODO Auto-generated method stub
    		 Class<?> class1 = Class.forName("reflectStdent.Person"); 
    		 //获得构造器
    		 Constructor<?> constructor = class1.getDeclaredConstructor(new Class[] {});
             //根据类的默认构造器来获得一个对象
    		 Object instance = constructor.newInstance(new Object[] {});
    		 System.out.println(instance);
    		 Method[] methods=class1.getDeclaredMethods();
    		 for(Method m:methods) {
    			 //获得方法名字
    			 String name =m.getName();
    			 boolean startsWith=name.startsWith("set");
    			 if(startsWith) {
    				 //获得到了set字符串的后面的值
    				 String fieldName=name.substring(3);
    				 //获得属性的名字
    				 fieldName=fieldName.substring(0,1).toLowerCase()+fieldName.substring(1);
    				 Field field = class1.getDeclaredField(fieldName);
    				 //获得属性的具体类型
    				 Class<?> type = field.getType();
    				 if(type==Integer.class) {
    					 m.invoke(instance, new Object[] {1});
    				 }
    				 if(type==String.class&&fieldName.equals("address")) {
    					 m.invoke(instance, new Object[] {"北京"});
    				 }
    				 if(type==String.class&&fieldName.equals("name"))
    					 m.invoke(instance, new Object[] {"李四"});
    			 }
    			 
    		 }
    		 System.out.println(instance);
    方法2  获得并使用Person的带参构造器  创建对象 并赋值
    Constructor<?> constructor1 = class1.getDeclaredConstructor(new Class[] {Integer.class,String.class,String.class});
    		 Object instance1 = constructor1.newInstance(new Object[] {1,"李四","北京"});
    		 System.out.println(instance1);


    喜欢博主的给个支持 刷个评论 谢谢拉

    展开全文
  • 反射给指定字段赋值
  • 使用反射技术对java实体类进行操作,得到所有属性并赋值给属性
  • java反射赋值(自查用) 例:(定制版需求) 需求: ABC三个完全相同对象 AB对象有值但是部分不同,以A表为准,B表补全数据,把不同部分的值按照需求赋值给C对象 public static Object checkObjAllFieldsIsNull...

    java反射赋值

     public static Object checkObjAllFieldsIsNull(Object into, Object complement, Object out) {
            if (null == into || complement == null) {
                return null;
            }
            //获得object对象对应的所有已申明的属性,包括public、private、和protected
            Field[] getInto = into.getClass().getDeclaredFields();
            Field[] getComplement = complement.getClass().getDeclaredFields();
            Field[] getOut = out.getClass().getDeclaredFields();
            try {
                for (int i = 0; i < getInto.length; i++) {
                    //成员变量中的属性为private时,需添加setAccessible
                    getInto[i].setAccessible(true);
                    getOut[i].setAccessible(true);
                    getComplement[i].setAccessible(true);
                    //校验A表有值取A表,否则取B表
                    if (getInto[i].get(into) != null && StringUtils.isNotBlank(getInto[i].get(into).toString())) {
                		getOut[i].set(out, getInto[i].get(into));
                    } else if (getComplement[i].get(complement) != null && StringUtils.isNotBlank(getComplement[i].get(complement).toString())) {
                        getOut[i].set(out, getComplement[i].get(complement));
                    }
                }
    
            } catch (Exception e) {
                e.printStackTrace();
                //异常返回null
                return null;
            }
            return out;
        }
    
    展开全文
  • java 利用反射进行赋值

    千次阅读 2017-03-30 13:52:46
    /**   * 根据属性名获取属性值   * */   private Object getFieldValueByName(String fieldName, Object o) {   try {   String firstLetter = fieldName.substring(0, 1).toUpperCase();
    1. /** 
    2.  * 根据属性名获取属性值 
    3.  * */  
    4.    private Object getFieldValueByName(String fieldName, Object o) {  
    5.        try {    
    6.            String firstLetter = fieldName.substring(01).toUpperCase();    
    7.            String getter = "get" + firstLetter + fieldName.substring(1);    
    8.            Method method = o.getClass().getMethod(getter, new Class[] {});    
    9.            Object value = method.invoke(o, new Object[] {});    
    10.            return value;    
    11.        } catch (Exception e) {    
    12.            log.error(e.getMessage(),e);    
    13.            return null;    
    14.        }    
    15.    }   
    16.      
    17.    /** 
    18.     * 获取属性名数组 
    19.     * */  
    20.    private String[] getFiledName(Object o){  
    21.     Field[] fields=o.getClass().getDeclaredFields();  
    22.         String[] fieldNames=new String[fields.length];  
    23.     for(int i=0;i<fields.length;i++){  
    24.         System.out.println(fields[i].getType());  
    25.         fieldNames[i]=fields[i].getName();  
    26.     }  
    27.     return fieldNames;  
    28.    }  
    29.      
    30.    /** 
    31.     * 获取属性类型(type),属性名(name),属性值(value)的map组成的list 
    32.     * */  
    33.    private List getFiledsInfo(Object o){  
    34.     Field[] fields=o.getClass().getDeclaredFields();  
    35.         String[] fieldNames=new String[fields.length];  
    36.         List list = new ArrayList();  
    37.         Map infoMap=null;  
    38.     for(int i=0;i<fields.length;i++){  
    39.         infoMap = new HashMap();  
    40.         infoMap.put("type", fields[i].getType().toString());  
    41.         infoMap.put("name", fields[i].getName());  
    42.         infoMap.put("value", getFieldValueByName(fields[i].getName(), o));  
    43.         list.add(infoMap);  
    44.     }  
    45.     return list;  
    46.    }  
    47.      
    48.    /** 
    49.     * 获取对象的所有属性值,返回一个对象数组 
    50.     * */  
    51.    public Object[] getFiledValues(Object o){  
    52.     String[] fieldNames=this.getFiledName(o);  
    53.     Object[] value=new Object[fieldNames.length];  
    54.     for(int i=0;i<fieldNames.length;i++){  
    55.         value[i]=this.getFieldValueByName(fieldNames[i], o);  
    56.     }  
    57.     return value;  

    1.    }      
    2. BC bc=new BC();
    3. Field field= null;
              try {
                  field = bc.getClass().getDeclaredField(k);//bc 为该对象实例化变量
                  String type = field.getType().toString();//得到此属性的类型
                  Object i=null;
                  field.setAccessible(true);
                  if(type.endsWith("int")){
                     i=Integer.valueOf(v);
                  }else if(type.endsWith("long")){
                      i=Long.valueOf(v);
                  }else if(type.endsWith("boolean")){
                      i=Boolean.valueOf(v);
                  }
                  field.set(bc, i);
                
              } catch (NoSuchFieldException e) {
                  e.printStackTrace();
              } catch (IllegalAccessException e) {
                  e.printStackTrace();
              }


    
    
    将对象输出map,key 为属性名, value 为属性值
    /**
     * 将一个类查询方式加入map(属性值为int型时,0时不加入,
     * 属性值为String型或Long时为null和“”不加入)
     *
     */
    public static HashMap<String, String> setConditionMap (Object obj){
        HashMap<String, String> map = new HashMap<String, String>();
    
        if(obj==null){
            return null;
        }
        Field[] fields = obj.getClass().getDeclaredFields();
        for(Field field : fields){
            String fieldName =  field.getName();
            if(getValueByFieldName(fieldName,obj)!=null)
                map.put(fieldName,  getValueByFieldName(fieldName,obj)+"");
        }
    
        return map;
    
    }
    /**
     * 根据属性名获取该类此属性的值
     * @param fieldName
     * @param object
     * @return
     */
    private static Object getValueByFieldName(String fieldName,Object object){
        String firstLetter=fieldName.substring(0,1).toUpperCase();
        String getter = "get"+firstLetter+fieldName.substring(1);
        try {
            Method method = object.getClass().getMethod(getter, new Class[]{});
            Object value = method.invoke(object, new Object[] {});
            return value;
        } catch (Exception e) {
            return null;
        }
    
    }



    文章转自:http://blog.csdn.net/zhchyun2008/article/details/20661041

    展开全文
  • 下面小编就为大家带来一篇java反射遍历实体类属性和类型,并赋值和获取值的简单方法。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
  • 总结一下今天所学,我们在学习java的时候,总会多多少少的听到过反射机制,但是我们好像听过之后就过去了,从来没去了解过它,然后平时做东西,也没有用到过。久而久之就慢慢给淡忘了。有时候面试的时候会被问道,你...
  • Java 对象反射赋值工具类

    千次阅读 2016-06-28 15:01:21
    对象反射赋值
  • Java反射(reflection)机制是指在程序的运行状态中,可以构造任意一个类的对象,可以了解任意一个对象所属的类,可以了解任意一个类的成员变量和方法,可以调用任意一个对象的属性和方法。这种动态获取程序信息...
  • 一般我们定义的实体类中一般都不止一种数据类型,通过反射取值可以对于数据处理会简单点,但是反射赋值过程中数据类型不一致就会导致赋值失败(很奇怪Object类型进去是不会触发隐式转换的),所以必须在赋值的时候先...
  • Java 通过反射给实体类赋值

    千次阅读 2019-06-09 18:27:13
    表单提交这个方法是挺方便的,但在java来说就显得有些麻烦了, 怎么个麻烦呢,就是当你字段多的时候,你就得一个一个的获取其对应的值,这样代码量就多了起来,其代码量不说,维护也是一个问题。 所以就有了这样一...
  • // 这里我只判断类型是String 和List的, 具体可根据对象属性类型去添加判断 if (type.equals("class java.lang.String")) { // 如果type是类类型,则前面包含"class ",后面跟类名 Method m = dto.getClass()....
  • JAVA反射之私有属性赋值

    千次阅读 2019-07-01 09:22:27
    案例:Map集合若有key(键)与User类中的私有属性相同,就把对应的value值赋值给该私有属性。 User类 public class User { private int id; private String name; private String sex; private String address;...
  • 于是想利用java反射机制做出一次编写各种适应的的读取和赋值。下面贴代码了:/** * 把ResultSet的结果放到java对象中(必须数据库里的列名和java类的属性名相同 * * @param * @param rs * ResultSet
  • 项目中需要过滤前面表单页面中传过来的实体类的中的String类型变量的前后空格过滤,由于前几天看过一个磨砺营的java反射讲解,非常受益。于是,哈哈哈  public static <T> void modelTrim(T model){  Class<T> ...
  • 主要介绍了java反射机制给实体类相同字段自动赋值实例,具有
  • User user =new User(); //方法调用 ​​​​​​​getObj(user ,date,...//通用对象赋值方法 private <T> T getObj(T t,Date date,String user) throws Exception { Class clazz = t.getClass(); clazz.ge...
  • java使用反射给对象属性赋值和取值

    千次阅读 2018-08-08 14:47:33
    //赋值:给h1,h2.....h2q赋值为0 for(int i=3;i;i++){ Field f = rwhc.getClass().getDeclaredField("h" + String.valueOf(i)); f.setAccessible(true); f.set(rwhc,0); } //取值: for(int i=1;i;i++)...
  • java利用反射给动态对象赋值

    千次阅读 2019-08-29 16:56:09
    import java.lang.reflect.Field; import java.lang.reflect.Method; import java.util.HashMap; import java.util.Map; public abstract class BaseUtils { private final static String SET = "set"; private ...
  • 利用Java反射实现为私有属性赋值

    千次阅读 2018-11-15 10:04:30
    JAVA反射机制是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法;对于任意一个对象,都能够调用它的任意方法和属性;这种动态获取信息以及动态调用对象方法的功能称为java语言的反射机制。 目标:...
  • java反射强制赋值

    2014-07-15 16:59:26
    import java.lang.reflect.Field;... * 反射赋值 * @author mengyao * */ public class ReflectSet { /** * 用于对类的字段赋值,无视private,project修饰符,无视set/get方法 * @p...
  • /** * 获取方法并赋值 * @param obj */ public void give(Object obj){ try { Class clas = obj.getClass(); Field [] fields = clas.getDeclaredFields(); for (Field
  • import java.lang.reflect.Field; /** * @auther: zpq * @date: 2020/11/9 14:43 * @description: 设置用户信息 */ public class ReflectionUtil { /** * @Description: 通过反射设置字段值 * * @auther: ...
  • } 这是优化后的代码 /** * @author LiXin * @date 2021-04-02 15:22 * @param map * @param clazz * @return T * @describe 使用反射机制,用类的class对象获得类对象,把map中的值赋给类对象的对应属性 * 例:map中有...
  • JAVA反射给属性赋值

    2013-07-10 19:52:10
    JAVA反射——给属性赋值 使用反射的机制来给私有的属性赋值,这个原理在许多ORM的组件中都有应用,下面是一段掩饰代码 [code="java"]public class FieldTest { public static void main(String[] ...
  • java 反射给字段重新赋值

    千次阅读 2017-04-10 14:46:11
    4.如果字段值为空,调用字段的set方法,为字段赋值 Field[] field = model.getClass().getDeclaredFields(); // 获取实体类的所有属性,返回Field数组  try {  for (int j = 0; j  Str

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 85,596
精华内容 34,238
关键字:

java反射赋值

java 订阅