反射_Class对象功能_获取Field
* 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相关推荐
- 反射_Class对象功能_获取Method
* Method:方法对象 * 执行方法: * Object invoke(Object obj, Object... args) * 获取方法名称: * St ...
- 反射_Class对象功能_获取Constructor
* Constructor:构造方法 * 创建对象: * T newInstance(Object... initargs) * 如果使用空参数构造方法创建对象,操作可以简化: ...
- java获取method,2.5 反射——Class对象功能_获取Method
>[info] 反射--Class对象功能_获取Method * Method:方法对象 * 执行方法: * Object invoke(Object obj, Object... args) ...
- 反射_Class对象功能概述
* Class对象功能:* 获取功能:1. 获取成员变量们* Field[] getFields() :获取所有public修饰的成员变量* Field getField(String name) 获 ...
- java 反射动态修改数据类型_[Java-基础]反射_Class对象_动态操作
动态性 动态语言 在程序运行时,可以改变程序结构或变量类型,典型的语言: Python,ruby,javascript 如: function test(){ var s = "var a= ...
- ServletContext_功能_获取文件服务器路径
获取文件的真实(服务器)路径 1. 方法:String getRealPath(String path) String b = context.getRealPath(& ...
- ServletContext_功能_获取MIME类型
1. 获取MIME类型: * MIME类型:在互联网通信过程中定义的一种文件数据类型 * 格式: 大类型/小类型 text/html image/jpeg * ...
- java获得对象类名_获取Java中各种对象的类名
该getName()方法用于获取由类对象表示的实体的名称,例如接口,类,数组类,void等.这些名称以字符串形式返回.该getPackage()方法获取给定类的包. 给出了获取各种对象的类名的程序,如 ...
- java 反射 父类的属性_用反射的方式获取父类中的所有属性和方法
package com.syh.jdbc.reflection_super; /** * 父类 * @author syh * */ public class Parent { public Stri ...
最新文章
- android 调用百度sdk点位当前城市
- Linux驱动修炼之道-RTC子系统框架与源码分析【转】
- mqtt js 中乱码_Vue.js 中的 v-cloak 指令——Vue学习之路
- java图像处理之实现任意角度图像旋转
- 深度学习笔记:手写一个单隐层的神经网络
- android 悬浮窗 输入框_利用DecorView实现悬浮窗的效果
- 安装默认报表服务器虚拟目录,报表服务器虚拟目录
- python虚拟环境搭建learning_log_vscode Python 虚拟环境搭建
- sap 双计量单位_SAP双计量单位实现基本要素.doc
- 深入理解dex文件结构
- oak深度相机入门教程-Full FOV NN
- 【华为od机试】统计射击比赛成绩-Python3
- 一文详细介绍情绪识别常用的数据集
- DNS服务器无响应win10系统,Win10上的DNS服务器无响应:这是如何解决它
- 从零开始实现美团联盟分销——先封装一个简洁易用的SDK
- itest英语考试bug_iTEST爱考试手机客户端下载-iTEST爱考试官网appv5.1.1安卓版下载_飞翔下载...
- RAC数据库实例之间的三种心跳机制
- 打过无数硬仗的美团点评王兴 为何说下半场竞合才是常态?
- RecurDyn在PNet二次开发Run时所遇到的异常
- 电商后台管理系统登录功能前端实现
热门文章
- 基于OMAPL138的字符驱动_GPIO驱动AD9833(三)之中断申请IRQ
- 'weblogic.kernel.Default (self-tuning) 问题weblogic层面解决办法
- js-ES6学习笔记-module(2)
- zigbee bind, ZDO_RegisterForZDOMsg, zcl_registerForMsg
- Windows下的.NET+ Memcached安装
- WP7 WMAppManifest.xml各个属性作用
- 【动态代理】从源码实现角度剖析JDK动态代理
- 两类传输协议:TCPUDP总结
- 【转载】基于Linux命令行KVM虚拟机的安装配置与基本使用
- 【SRX】RE与PFE策略不同步,导致Commit失败-----案例分析