java 反射机制--根据属性名获取属性值

1.考虑安全访问范围内的属性,没有权限访问到的属性不读取

[java] view plain copy

  1. /**
  2. * 根据属性名获取属性值
  3. *
  4. * @param fieldName
  5. * @param object
  6. * @return
  7. */
  8. private String getFieldValueByFieldName(String fieldName, Object object) {
  9. try {
  10. Field field = object.getClass().getField(fieldName);
  11. //设置对象的访问权限,保证对private的属性的访问
  12. return  (String)field.get(object);
  13. } catch (Exception e) {
  14. return null;
  15. }
  16. }

2.不考虑从祖先类继承的属性,只获取当前类属性,包括四类访问权限,private,protect,default,public

[java] view plain copy

  1. /**
  2. * 根据属性名获取属性值
  3. *
  4. * @param fieldName
  5. * @param object
  6. * @return
  7. */
  8. private String getFieldValueByFieldName(String fieldName, Object object) {
  9. try {
  10. Field field = object.getClass().getDeclaredField(fieldName);
  11. //设置对象的访问权限,保证对private的属性的访问
  12. field.setAccessible(true);
  13. return  (String)field.get(object);
  14. } catch (Exception e) {
  15. return null;
  16. }
  17. }

3.考虑父类继承过来的属性,包括四类访问权限,private,protect,default,public

[java] view plain copy

    1. /**
    2. * 根据属性名获取属性元素,包括各种安全范围和所有父类
    3. *
    4. * @param fieldName
    5. * @param object
    6. * @return
    7. */
    8. private Field getFieldByClasss(String fieldName, Object object) {
    9. Field field = null;
    10. Class<?> clazz = object.getClass();
    11. for (; clazz != Object.class; clazz = clazz.getSuperclass()) {
    12. try {
    13. field = clazz.getDeclaredField(fieldName);
    14. } catch (Exception e) {
    15. // 这里甚么都不能抛出去。
    16. // 如果这里的异常打印或者往外抛,则就不会进入
    17. }
    18. }
    19. return field;
    20. }

原文地址:https://www.cnblogs.com/zhizhijiao/p/9052136.html

时间: 2024-10-08 16:23:54

java 反射机制--根据属性名获取属性值的相关文章

java反射机制,通过类名获取对象,通过方法名和参数调

try {//得到对象Class c = Class.forName("完整类名");Object yourObj = c.newInstance();//得到方法Method methlist[] = cls.getDeclaredMethods();for (int i = 0; i < methlist.length; i++) {Method m = methlist[i];}//获取到方法对象,假设方法的参数是一个int,method名为setAgeMethod sAg

** * 根据属性名获取属性值 * * @aram fie理直气壮休假去高薪亦难换

Allure 是一个reor框架,支持多语言,多平台.可以通过JuniTesngyes等产生的结果集生成酷炫好看的reor;同时也可以支持自定义字段,将你想展示 本文基于几篇经典的论文,对 Aenion 模型的不同结构进行分析.拆解. 先简单谈一谈 aenion 模型的引入.以基于 seq2seq 模型的机器翻译为例,如自13年兴起的Fla设计趋势,也恰恰好符合了这一规律.去除冗余.厚重和繁杂的装饰效果,这是Fla设计的核心意义. 道理仿佛异常简单,但要做出优秀的Fla??? 今天在cenOS

java反射机制学习笔记及例子代码

Java 反射的API 反射中常常用的几个类如下所示: java.lang 包中: --Class 类:代表一个类 Java 中,无论生成某个类的多少个对象,这些对象都会对应同一个 Class 对象 Java.lang.reflect 包中: --Field 类:代表类的成员变量(类的属性) --Method 类:代表类的方法,一个方法对应一个 Method 对象 --Constructor 类:代表类的构造方法 --Array 类:提供动态创建数组,以及访问数组的元素的静态方法 利用反射机制调

Java反射机制可以动态修改实例中final修饰的成员变量吗?

问题:Java反射机制可以动态修改实例中final修饰的成员变量吗? 回答是分两种情况的. 1. 当final修饰的成员变量在定义的时候就初始化了值,那么java反射机制就已经不能动态修改它的值了. 2. 当final修饰的成员变量在定义的时候并没有初始化值的话,那么就还能通过java反射机制来动态修改它的值. 实验: 1. 当final修饰的成员变量在定义的时候就初始化了值 1 public Class Person { 2 private final String name = "damon

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

方法1:通过get()方法获取属性值 package com.sxd.test.controller; public class FirstCa{ private Integer num; private String name; private Boolean flag; public Integer getNum() { return num; } public void setNum(Integer num) { this.num = num; } public String getNam

Java反射机制能够获取的信息,与应用

一.什么是Java反射机制? [1]反射机制是在运行状态中,对于任何一个类,都能够知道这个类的所有属性和方法: [2]对于任意一个对象,都能够调用它的任意一个属性和方法: 像这种动态获取类的信息以及动态调用对象的方法的骚操作称为java语言的反射机制. 二.Java反射机制能够获取及操作哪些信息? [1]获取类的包名 + 类名 1 package com.zyy.test.reflect; 2 3 public class TestReflect { 4 5 public static void

Java反射机制demo(四)—获取一个类的父类和实现的接口

Java反射机制demo(四)—获取一个类的父类和实现的接口 1,Java反射机制得到一个类的父类 使用Class类中的getSuperClass()方法能够得到一个类的父类 如果此 Class 表示 Object 类.一个接口.一个基本类型或 void,则返回 null.如果此对象表示一个数组类,则返回表示该 Object 类的 Class 对象. 测试代码: package com.aaron.reflect; public class Demo4 { public static void

Java反射机制浅析

JAVA反射机制是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法:对于任意一个对象,都能够调用它的任意一个方法和属性:这种动态获取的信息以及动态调用对象的方法的功能称为java语言的反射机制. "程序运行时,允许改变程序结构或变量类型,这种语言称为动态语言".从这个观点看,Perl,Python,Ruby是动态语言,C++,Java,C#不是动态语言.但是JAVA有着一个非常突出的动态相关机制:Reflection,用在Java身上指的是我们可以于运行时加载.探知.使用

java反射机制分析

本文转自:http://www.cnblogs.com/gulvzhe/archive/2012/01/27/2330001.html 浅显易懂,值得收藏 Java反射机制是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法:对于任意一个对象, 都能够调用它的任意一个方法和属性:这种动态获取的信息以及动态调用对象的方法的功能称为Java语言的反射机制.反射的概念是由Smith在1982年 首次提出的,主要是指程序可以访问.检测和修改它本身状态或行为的一种能力.这一概念的提出很快引发了