* Field:成员变量
    * 操作:
        1. 设置值
            * void set(Object obj, Object value)  
        2. 获取值
            * get(Object obj)

3. 忽略访问权限修饰符的安全检查
            * setAccessible(true):暴力反射

package cn.learn.reflect;import cn.learn.domain.Person;import java.lang.reflect.Field;public class ReflectDemo2 {/**Class对象功能:* 获取功能:1. 获取成员变量们* Field[] getFields()* Field getField(String name)* Field[] getDeclaredFields()* Field getDeclaredField(String name)2. 获取构造方法们* Constructor<?>[] getConstructors()* Constructor<T> getConstructor(类<?>... parameterTypes)* Constructor<T> getDeclaredConstructor(类<?>... parameterTypes)* Constructor<?>[] getDeclaredConstructors()3. 获取成员方法们:* Method[] getMethods()* Method getMethod(String name, 类<?>... parameterTypes)* Method[] getDeclaredMethods()* Method getDeclaredMethod(String name, 类<?>... parameterTypes)4. 获取类名* String getName()*/public static void main(String[] args) throws Exception {//0.获取Person的Class对象Class personClass = Person.class;/*1. 获取成员变量们* Field[] getFields()* Field getField(String name)* Field[] getDeclaredFields()* Field getDeclaredField(String name)*///1.Field[] getFields()获取所有public修饰的成员变量Field[] fields = personClass.getFields();for (Field field : fields) {System.out.println(field);}System.out.println("------------");//2.Field getField(String name)Field a = personClass.getField("a");//获取成员变量a 的值Person p = new Person();Object value = a.get(p);System.out.println(value);//设置a的值a.set(p,"张三");System.out.println(p);System.out.println("===================");//Field[] getDeclaredFields():获取所有的成员变量,不考虑修饰符Field[] declaredFields = personClass.getDeclaredFields();for (Field declaredField : declaredFields) {System.out.println(declaredField);}//Field getDeclaredField(String name)Field d = personClass.getDeclaredField("d");//忽略访问权限修饰符的安全检查d.setAccessible(true);//暴力反射Object value2 = d.get(p);System.out.println(value2);}}
package cn.learn.domain;public class Person {private String name;private int age;public String a;protected String b;String c;private String d;public Person() {}public Person(String name, int age) {this.name = name;this.age = age;}public String getName() {return name;}public void setName(String name) {this.name = name;}public int getAge() {return age;}public void setAge(int age) {this.age = age;}@Overridepublic String toString() {return "Person{" +"name='" + name + '\'' +", age=" + age +", a='" + a + '\'' +", b='" + b + '\'' +", c='" + c + '\'' +", d='" + d + '\'' +'}';}public void eat(){System.out.println("eat...");}public void eat(String food){System.out.println("eat..."+food);}
}

反射_Class对象功能_获取Field相关推荐

  1. 反射_Class对象功能_获取Method

    * Method:方法对象     * 执行方法:         * Object invoke(Object obj, Object... args) * 获取方法名称:         * St ...

  2. 反射_Class对象功能_获取Constructor

    * Constructor:构造方法     * 创建对象:         * T newInstance(Object... initargs) * 如果使用空参数构造方法创建对象,操作可以简化: ...

  3. java获取method,2.5 反射——Class对象功能_获取Method

    >[info] 反射--Class对象功能_获取Method * Method:方法对象 * 执行方法: * Object invoke(Object obj, Object... args) ...

  4. 反射_Class对象功能概述

    * Class对象功能:* 获取功能:1. 获取成员变量们* Field[] getFields() :获取所有public修饰的成员变量* Field getField(String name) 获 ...

  5. java 反射动态修改数据类型_[Java-基础]反射_Class对象_动态操作

    动态性 动态语言 在程序运行时,可以改变程序结构或变量类型,典型的语言: Python,ruby,javascript 如: function test(){ var s = "var a= ...

  6. ServletContext_功能_获取文件服务器路径

    获取文件的真实(服务器)路径     1. 方法:String getRealPath(String path)            String b = context.getRealPath(& ...

  7. ServletContext_功能_获取MIME类型

    1. 获取MIME类型:     * MIME类型:在互联网通信过程中定义的一种文件数据类型         * 格式: 大类型/小类型   text/html        image/jpeg * ...

  8. java获得对象类名_获取Java中各种对象的类名

    该getName()方法用于获取由类对象表示的实体的名称,例如接口,类,数组类,void等.这些名称以字符串形式返回.该getPackage()方法获取给定类的包. 给出了获取各种对象的类名的程序,如 ...

  9. java 反射 父类的属性_用反射的方式获取父类中的所有属性和方法

    package com.syh.jdbc.reflection_super; /** * 父类 * @author syh * */ public class Parent { public Stri ...

最新文章

  1. android 调用百度sdk点位当前城市
  2. Linux驱动修炼之道-RTC子系统框架与源码分析【转】
  3. mqtt js 中乱码_Vue.js 中的 v-cloak 指令——Vue学习之路
  4. java图像处理之实现任意角度图像旋转
  5. 深度学习笔记:手写一个单隐层的神经网络
  6. android 悬浮窗 输入框_利用DecorView实现悬浮窗的效果
  7. 安装默认报表服务器虚拟目录,报表服务器虚拟目录
  8. python虚拟环境搭建learning_log_vscode Python 虚拟环境搭建
  9. sap 双计量单位_SAP双计量单位实现基本要素.doc
  10. 深入理解dex文件结构
  11. oak深度相机入门教程-Full FOV NN
  12. 【华为od机试】统计射击比赛成绩-Python3
  13. 一文详细介绍情绪识别常用的数据集
  14. DNS服务器无响应win10系统,Win10上的DNS服务器无响应:这是如何解决它
  15. 从零开始实现美团联盟分销——先封装一个简洁易用的SDK
  16. itest英语考试bug_iTEST爱考试手机客户端下载-iTEST爱考试官网appv5.1.1安卓版下载_飞翔下载...
  17. RAC数据库实例之间的三种心跳机制
  18. 打过无数硬仗的美团点评王兴 为何说下半场竞合才是常态?
  19. RecurDyn在PNet二次开发Run时所遇到的异常
  20. 电商后台管理系统登录功能前端实现

热门文章

  1. 基于OMAPL138的字符驱动_GPIO驱动AD9833(三)之中断申请IRQ
  2. 'weblogic.kernel.Default (self-tuning) 问题weblogic层面解决办法
  3. js-ES6学习笔记-module(2)
  4. zigbee bind, ZDO_RegisterForZDOMsg, zcl_registerForMsg
  5. Windows下的.NET+ Memcached安装
  6. WP7 WMAppManifest.xml各个属性作用
  7. 【动态代理】从源码实现角度剖析JDK动态代理
  8. 两类传输协议:TCPUDP总结
  9. 【转载】基于Linux命令行KVM虚拟机的安装配置与基本使用
  10. 【SRX】RE与PFE策略不同步,导致Commit失败-----案例分析