我们在开发的过程中,可能会遇到需要动态地通过字符串获取某个值,该值来自于某个对象。

利用反射可以,方便获取。该类可提取为工具类,供众多类调用。

getValueFormObject方法就是从Object对象中获取该对象的属性名称当中,与fileName相同的值。

ReflectUtil.java

import java.lang.reflect.Field;public class ReflectUtil {public static Object getValueFormObject(Object object, String fieldName) {if (object==null){
//            LOG.error("the fields is wrong,object is null,fieldName is "+fieldName);System.out.println("the fields is wrong,object is null,fieldName is "+fieldName);return null;}if(fieldName==null||fieldName=="") {
//            LOG.error("the fields is wrong,object is null,object is  "+object.toString());System.out.println("the fields is wrong,object is null,fieldName is "+fieldName);return null;}Field field;try {field = object.getClass().getDeclaredField(fieldName);if (field != null) {field.setAccessible(true);return field.get(object);}} catch (NoSuchFieldException | IllegalAccessException e) {
//            LOG.error("Get Value Form Object Wrong");System.out.println("Get Value Form Object Wrong");}return null;}public static void main(String[] args) {Student student = new Student(1,"kangyucheng");Object obj1 = ReflectUtil.getValueFormObject(student, "name");Object obj2 = ReflectUtil.getValueFormObject(student, "id");System.out.println(obj1.toString());System.out.println(obj2.toString());}}

 在测试当中我们用到的学生类:

Student.java


public class Student {private Integer id;private String name;public Student(Integer id, String name) {this.id = id;this.name = name;}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;}}

测试结果:

kangyucheng
1

Java反射之从对象获取值相关推荐

  1. 【java】java反射机制,动态获取对象的属性和对应的参数值,并属性按照字典序排序,Field.setAccessible()方法的说明【可用于微信支付 签名生成】...

    方法1:通过get()方法获取属性值 package com.sxd.test.controller;public class FirstCa{private Integer num;private ...

  2. 通过Java反射获取对象上的注解,java反射注解妙用-获取所有接口说明

    原标题:java反射注解妙用-获取所有接口说明 转载请注明出处:https://www.cnblogs.com/wenjunwei/p/10293490.html 前言 最近在做项目权限,使用shir ...

  3. java 对象复制 反射_利用Java反射机制实现对象相同字段的复制操作

    一.如何实现不同类型对象之间的复制问题? 1.为什么会有这个问题? 近来在进行一个项目开发的时候,为了隐藏后端数据库表结构.同时也为了配合给前端一个更友好的API接口文档(swagger API文档) ...

  4. 【Java 8 新特性】Java Map getOrDefault() 示例 | Map获取值为空则取默认值

    @[TOC](Java Map getOrDefault() 示例 | Map获取值为空则取默认值) getOrDefault是java.util.Map的默认方法,在Java 8中被引入. getO ...

  5. java反射之Field用法(获取对象的字段名和属性值)

    一.概述 Field是一个类,位于java.lang.reflect包下.在Java反射中Field类描述的是类的属性信息,功能包括: 获取当前对象的成员变量的类型 对成员变量重新设值 二.如何获取F ...

  6. java后台用 requset对象 存储值 前台获取不到_springmvc form表单提交后台对象获取不到值(解决)...

    使用springmvc进行表单提交时,在controller action层实体对象获取不到值. 在struts中使用user.username方式传递参数,在spring中不需要对象点直接使用对象属 ...

  7. 利用java反射机制进行对象操作

    我们经常使用COMMONS-BEANUTILS包来进行bean的操作,例如从map到bean获从bean到map的映射,那么实现的原理是什么呢,下面举个简单的操作的例子:首先,我建立一个bean pu ...

  8. java pair class,在Java Pair Class Tuple中获取值

    使用该getValueX()方法从Java的Pair Tuple类中的特定索引处获取值.例如,getValue0(). 首先让我们看看使用JavaTuples所需的工具.要在JavaTuples中使用 ...

  9. java 反射根据属性名获取属性值

    一.背景 在使用三方sdk的时候如果三方提供的api满足不了我们的需求,这时候就需要通过阅读三方sdk的代码,并通过反射来实现我们的需求. 二.根据属性名获取属性值 1.考虑安全访问范围内的属性,没有 ...

最新文章

  1. OPPO R9s在哪里开启Usb调试模式的完美步骤
  2. android popupwindow dialog区别,Android PopUpWindow使用详解
  3. ABAP程序权限对象设定
  4. ASP.NET PipeLine #Reprinted#
  5. 利剑无意之Dubbo 面试题
  6. abiword Namespace List
  7. java中for的常规用法_Java for循环的几种用法详解
  8. 北航 2012 秋季 现代软件工程 团队项目要求
  9. python的for语句写新的字符串_Python:for循环遍历对象,而不是字符串
  10. 织梦使用if判断某个字段是否为空
  11. Windows8 游戏开发教程-二、关于资源和工具
  12. Expected one result (or null) to be returned by selectOne(), but found: 2
  13. 【操作系统】第3章 进程管理与调度
  14. python之函数用法__getitem__()
  15. arcgis server缓存路径修改
  16. Debian完全卸载清理MySQL服务器
  17. unity如何得到所有子对象_Unity中获取多级子父节点的对象的两种方式
  18. iOS 之NSOperation(一)
  19. 【保姆级教程】使用python实现SIR模型(包含数据集的制作与导入及最终结果的可视化)
  20. 基于阿里云服务器使用宝塔面板进行Hexo建站

热门文章

  1. c语言linux打印运行时间(耗时) gettimeofday()、timeval、<sys/time.h>
  2. win10如何使用语音输入文字功能?(语音识别)
  3. python PyQt5 sizeHint()
  4. 深度学习中的batch理解(batch size 一次喂给神经网络的数据大小量)
  5. python 多线程 线程如何获得返回值 (重写threading.Thread类)
  6. pytorch 中的 @ 和 * 运算符
  7. 磁盘阵列掉电 oracle数据库,掉电导致磁盘坏,非归档下的redo全部丢失,数据库打开的恢复失败...
  8. go interface 转int_大神是如何学习 Go 语言之反射的实现原理
  9. Linux运维:如何根据端口号查看哪个应用占用?
  10. 替换弹窗中字段显示的值