精华内容
下载资源
问答
  • 通过Java反射获得对象里面的所有字段名以及字段对应的public static void test(Bean bean) {Field[] fields = bean.getClass().getDeclaredFields();for(Field field :fields) {//设置是否允许访问,不是修改原来...

    cff2ea5dded2bb74535f9d2cb3320e43.png

    通过Java反射获得对象里面的所有字段名以及字段对应的值public static void test(Bean bean) {

    Field[] fields = bean.getClass().getDeclaredFields();

    for(Field field :fields) {

    //设置是否允许访问,不是修改原来的访问权限修饰词。

    field.setAccessible(true);

    //获取字段名,和字段的值

    System.out.println("name: "+field.getName() + "value: " +field.get(bean));

    }

    }

    测试Bean@Data

    public class Bean{

    private String userName;

    private String userId;

    private String userPwd;

    private String userPhone;

    }

    调用public static void main(String[] args){

    Bean bean = new Bean();

    bean.setUserName("张大炮");

    bean.setUserId("zdp2000");

    bean.setUserPwd("zhangdapaopwd123");

    bean.setUserPhone("18666886688");

    test(bean);

    }

    展开全文
  • /*** 获取对象属性,返回一个字符串数组** @param o 对象* @return String[] 字符串数组*/private static String[] getFiledName(Object o){try{Field[] fields = o.getClass().getDeclaredFields();String[] field...

    /**

    * 获取对象属性,返回一个字符串数组

    *

    * @param o 对象

    * @return String[] 字符串数组

    */

    private static String[] getFiledName(Object o)

    {

    try

    {

    Field[] fields = o.getClass().getDeclaredFields();

    String[] fieldNames = new String[fields.length];

    for (int i=0; i < fields.length; i++)

    {

    fieldNames[i] = fields[i].getName();

    }

    return fieldNames;

    } catch (SecurityException e)

    {

    e.printStackTrace();

    System.out.println(e.toString());

    }

    return null;

    }

    /**

    * 使用反射根据属性名称获取属性值

    *

    * @param fieldName 属性名称

    * @param o 操作对象

    * @return Object 属性值

    */

    private static Object getFieldValueByName(String fieldName, Object o)

    {

    try

    {

    String firstLetter = fieldName.substring(0, 1).toUpperCase();

    String getter = "get" + firstLetter + fieldName.substring(1);

    Method method = o.getClass().getMethod(getter, new Class[] {});

    Object value = method.invoke(o, new Object[] {});

    return value;

    } catch (Exception e)

    {

    System.out.println("属性不存在");

    return null;

    }

    }

    展开全文
  • 本文实例讲述了java基于反射得到对象属性的方法。分享给大家供大家参考,具体如下:通过反射机制得到对象中的属性和属性对象中private没问题,在别的类中有时会报异常。下面的例子是在本对象中/*** Engine ...

    本文实例讲述了java基于反射得到对象属性值的方法。分享给大家供大家参考,具体如下:

    通过反射机制得到对象中的属性和属性值 在对象中private没问题,在别的类中有时会报异常。下面的例子是在本对象中

    /**

    * Engine entity. @author MyEclipse Persistence Tools

    */

    public class Engine implements java.io.Serializable {

    // Fields

    private Long engineId;

    private String engineName;

    private String engineType;

    // Constructors

    /** default constructor */

    public Engine() {

    }

    /** minimal constructor */

    public Engine(Long engineId) {

    this.engineId = engineId;

    }

    public Engine(String engineName, String engineType) {

    this.engineName = engineName;

    this.engineType = engineType;

    }

    /** full constructor */

    public Engine(Long engineId, String engineName, String engineType) {

    this.engineId = engineId;

    this.engineName = engineName;

    this.engineType = engineType;

    }

    // Property accessors

    public Long getEngineId() {

    return this.engineId;

    }

    public void setEngineId(Long engineId) {

    this.engineId = engineId;

    }

    public String getEngineName() {

    return this.engineName;

    }

    public void setEngineName(String engineName) {

    this.engineName = engineName;

    }

    public String getEngineType() {

    return this.engineType;

    }

    public void setEngineType(String engineType) {

    this.engineType = engineType;

    }

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

    Engine m = new Engine("汽车","发动机");

    Class clazz = m.getClass();

    Field[] f = clazz.getDeclaredFields();

    String[] name = field2Name(f);

    Object[] value = field2Value(f, m);

    showNameAndValue(name, value);

    }

    public static void showNameAndValue(String[] name, Object[] value) {

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

    System.out.println("--" + i + "--");

    System.out.println("name:" + name[i]);

    System.out.println("Value:" + value[i]);

    System.out.println("-- --");

    }

    }

    public static String[] field2Name(Field[] f) {

    String[] name = new String[f.length];

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

    name[i] = f[i].getName();

    }

    return name;

    }

    public static Object[] field2Value(Field[] f, Object o) throws Exception {

    Object[] value = new Object[f.length];

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

    value[i] = f[i].get(o);

    }

    return value;

    }

    }

    如果想调用private的属性的属性值,则要调用他的get方法了具体做法是:

    把field2Value方法改为如下方式,这样在别的类中也可以得到private的属性值了

    public static Object[] field2Value(Field[] fields, Object o) throws Exception {

    Object[] values = new Object[fields.length];

    Class classType = o.getClass();

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

    String fieldName = fields[i].getName();

    String firstLetter = fieldName.substring(0, 1).toUpperCase();

    String getMethodName = "get" + firstLetter + fieldName.substring(1);

    Method getMethod = classType.getMethod(getMethodName, new Class[] {});

    values[i] = getMethod.invoke(o, new Object[] {});

    }

    return values;

    }

    希望本文所述对大家java程序设计有所帮助。

    展开全文
  • import java.lang.reflect.Field;import java.lang.reflect.Method;import java.text.SimpleDateFormat;import java.util.ArrayList;import java.util.Date;import java.util.List;import ja...

    package com.hao.search;

    import java.lang.reflect.Field;

    import java.lang.reflect.Method;

    import java.text.SimpleDateFormat;

    import java.util.ArrayList;

    import java.util.Date;

    import java.util.List;

    import java.util.Objects;

    import org.apache.commons.collections.CollectionUtils;

    import org.slf4j.Logger;

    import org.slf4j.LoggerFactory;

    import com.google.common.base.Joiner;public classObjectPaseUtils {private static Logger logger = LoggerFactory.getLogger(ObjectPaseUtils.class);/**

    * @desc 将对象转换成指定String

    * @param

    * @param t

    * @return*/

    public static String objectToStr(T t) {

    List list = new ArrayList();

    String[] fieldNames=getFiledName(t);for (int i = 0; i < fieldNames.length; i++) {

    String name=fieldNames[i];

    Object value=getFieldValueByName(name, t);if (null !=value) {if (getFiledType(name, t).equals(Date.class)) {

    value= new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format((Date)value);

    }

    list.add(name+ ":" +value);

    }

    }if(CollectionUtils.isNotEmpty(list)) {return Joiner.on("\r").skipNulls().join(list);

    }return null;

    }/**

    * @desc 获取属性名数组

    * @param o

    * @return*/

    private staticString[] getFiledName(Object o) {

    Field[] fields=o.getClass().getDeclaredFields();

    String[] fieldNames= newString[fields.length];for (int i = 0; i < fields.length; i++) {

    fieldNames[i]=fields[i].getName();

    }returnfieldNames;

    }/**

    * @desc 根据属性名获取属性值

    * @param fieldName

    * @param o

    * @return*/

    private staticObject getFieldValueByName(String fieldName, Object o) {try{

    String firstLetter= fieldName.substring(0, 1).toUpperCase();

    String getter= "get" + firstLetter + fieldName.substring(1);

    Method method= o.getClass().getMethod(getter, newClass[] {});

    Object value= method.invoke(o, newObject[] {});returnvalue;

    }catch(Exception e) {

    logger.error("获取属性值失败!" +e, e);

    }return null;

    }/**

    * @desc 获取属性的数据类型

    * @param fieldName

    * @param o

    * @return*/

    private staticObject getFiledType(String fieldName, Object o) {

    Field[] fields=o.getClass().getDeclaredFields();for(Field field : fields) {if(Objects.equals(fieldName, field.getName())) {returnfield.getType();

    }

    }return null;

    }

    }

    展开全文
  • 该楼层疑似违规已被系统折叠隐藏此楼查看此楼/*** 根据属性名获取属性* */private Object getFieldValueByName(String fieldName, Object o) {try {String firstLetter = fieldName.substring(0, 1).toUpperCase()...
  • import java.lang.reflect.Field;import java.lang.reflect.Method;import java.text.SimpleDateFormat;import java.util.ArrayList;import java.util.Date;import java.util.List;import ja...
  • Java如何基于反射获取对象属性信息,属性,对象,四种,建立一个,创建一个Java如何基于反射获取对象属性信息易采站长站,站长之家为您整理了Java如何基于反射获取对象属性信息的相关内容。先建立一个类,有四种属性:...
  • } /** * 通过找到的子对象获取到当前的属性,传入所需的属性名,得到属性 * @param o父对象 * @param f父对象下的子对象的Field对象 * @param field所需要获取的属性名 * @returnObject */ public ...
  • 然后我们可以访问对象的字段的,设置它们的,并调用它们的方法。有两种方法来创建对象:使用no-args构造函数使用带参数的构造函数无参数构造函数如果你有一个 Class 对象的引用,你可以创建一个对象该类对Class类...
  • java 获取对象某个属性

    千次阅读 2016-10-19 14:32:15
    private String getValueByReflet(Object model, String paraName) throws Exception{ // 返回值 String value = "... // 获取属性 Field[] fields = model.getClass().getDeclaredFiel...
  • //遍历,得到属性 for (int i = 0; i (); i++) { JSONObject jo = jsonArray.getJSONObject(i); String id = jo.getString("id"); String name = jo.getString("name"); String parentId = jo.getString(...
  • Foo对象,field.get(obj)然后再次对其进行迭代以获取子类变量。但是,如何在没有该类实例的情况下获取每个子类成员变量的?我的平凡示例之所以有用,是因为Bar该类的每个实例的变量都相同,因此我可以调用...
  • 我的哈希图中有一个称为“ mastervalue”的对象值。 mastervalue包含ques_id作为键,而array包含score和answer作为值。如何仅获取数组的值(分数和答案)并以List形式返回。String maprule = "department == '2' &...
  • 利用反射获取对象的所有属性及对应的1、获取属性名数组private static String[] getFiledName(Object o) {Field[] fields = o.getClass().getDeclaredFields();String[] fieldNames = new String[fields.length];...
  • java中我们要获得实体类对象的属性,一般情况是将实体类中的属性私有化,然后再对外提供get()与set()方法,然后再获取实体类对象的属性的时候先把对象new出来,再用变量名.get()的方法得到,如果想给某个属性赋值...
  • java获取对象属性类型、属性名称、属性 获取属性 修饰符:【在Field[]循环中使用】 String modifier = Modifier.toString(fields[i].getModifiers()); /** * 根据属性名获取属性 * */ ...
  • Java反射如何获取对象内容发布时间:2020-07-10 09:46:21来源:亿速云阅读:85作者:Leah今天就跟大家聊聊有关Java反射如何获取对象内容,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,...
  • packagecom.gomepay.gb.utils.enums;importcom.gomepay.gb.utils....importjava.lang.reflect.InvocationTargetException;importjava.lang.reflect.Method;importjava.math.BigDecimal;importjava.util....
  • java中我们要获得实体类对象的属性,一般情况是将实体类中的属性私有化,然后再对外提供get()与set()方法,然后再获取实体类对象的属性的时候先把对象new出来,再用变量名.get()的方法得到,如果想给某个属性赋值...
  • java中我们常用到写文件,那我们怎么样获取一直对象的属性名称、、类型 /** * 根据属性名获取属性 * */ private Object getFieldValueByName(String fieldName, Object o) { try { String first...
  • Refection演示程序,用于获取类的对象的字段并设置或获取。packageorg.nhooo.example.lang;importjava.util.Date;importjava.lang.reflect.Field;publicclassGetSetFieldDemo{publicstaticDatenow;publicLongid;...
  • } /** * 通过找到的子对象获取到当前的属性,传入所需的属性名,得到属性 * @param o父对象 * @param f父对象下的子对象的Field对象 * @param field所需要获取的属性名 * @returnObject */ public ...
  • packagecom.gomepay.gb.utils.enums;importcom.gomepay.gb.utils....importjava.lang.reflect.InvocationTargetException;importjava.lang.reflect.Method;importjava.math.BigDecimal;importjava.util....
  • /*** 根据属性名获取属性* */private Object getFieldValueByName(String fieldName, Object o) {try {String firstLetter = fieldName.substring(0, 1).toUpperCase();String getter = "get" + firstLetter + ...
  • Java获取对象大小

    2019-01-14 14:17:15
    但当一个系统的内存有限,或者某块程序代码允许使用的内存大小有限制,又或者设计一个缓存机制,当存储对象内存超过固定之后写入磁盘做持久化等等,总之我们希望像写C一样,java也能有方法实现获取对象占用内存的...
  • java 复制非空对象属性 public static void main(String[] args){ User u1 = new User(); u1.setName("AAA"); u2.setArea("中国东莞"); User u2 = new User(); u2.setName("BB"); Bea
  • 主要使用到了java.beans包下的类,利用底层反射来获取对象对应的属性和方法;** BeanInfo **:提供有关Bean的显式信息的接口,其中包含类的属性,方法、事件等显式信息,可以通过Introspector底层反射机制获取** ...
  • 一般来说如果你的配置正确是可以得到的但是有一种情况会获取失败:  你在定义对象的时候get和set方法没有写正确,需要仔细看看对象的get和set方法  ...
  • 因为项目需要用到,于是简单封装了一些常用的操作:/*** 根据属性名获取属性* */private Object getFieldValueByName(String fieldName, Object o) {try {String firstLetter = fieldName.substring(0, 1)....

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 5,373
精华内容 2,149
关键字:

java获取对象值

java 订阅