反射工具类调用getset

Posted root_zhb

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了反射工具类调用getset相关的知识,希望对你有一定的参考价值。

import java.lang.reflect.Field;
import java.lang.reflect.Method;
import java.math.BigDecimal;

/**
 * 使用反射get值,进行计算,再用反射set值
 */
public class FrontDataUtils 
    public static void frontDataCalculate(Object o)
    	//遍历所有字段
        for (Field f : o.getClass().getDeclaredFields()) 
        	//获取字段名
            String name = f.getName();
            //字段首字母大写
            name = name.substring(0, 1).toUpperCase() + name.substring(1);
            try 
            	//get方法
                Method m = o.getClass().getMethod("get" + name);
                //set方法
                Method s = o.getClass().getMethod("set" + name, BigDecimal.class);
                // 调用getter方法获取属性值
                BigDecimal value = (BigDecimal) m.invoke(o);
                if(value!=null)
                	//获取的值进行计算
                    value=value.divide(BigDecimal.valueOf(10000)).setScale(0,BigDecimal.ROUND_DOWN);
                    //setter方法进行赋值
                    s.invoke(o,value);
                
             catch (Exception e) 
                e.printStackTrace();
            
        
    


以上是关于反射工具类调用getset的主要内容,如果未能解决你的问题,请参考以下文章

反射工具类(调用父类的方法和字段)

反射工具类——ReflectUtils

java 通过反射获取调用类方法及属性

java 通过反射获取调用类方法及属性

java 反射

java--反射注解(反射解析注解+注解应用)