通过反射 修改访问和修改属性的值 Day25
package com.sxt.field;
/*
* 通过反射拿到属性值
* 修改public属性值
* 修改private属性值
* 缺点:可读性差;代码复杂
* 优点:灵活;可以访问修改private属性值
* 以后多运用setXxx getXxx 修改属性的值
*/
import java.lang.reflect.Field;
import java.lang.reflect.Modifier; public class TestField {
public static void main(String[] args) throws Exception {
//设置私有属性值
Class<?> class1 = Class.forName("com.sxt.entity.Student");
//创建对象
Object obj = class1.newInstance();
Field[] fields = class1.getDeclaredFields();
//遍历所有属性
for(Field f : fields){
System.out.println(f.getName()+"\t"+Modifier.toString(f.getModifiers()));
}
System.out.println("----------------------------------"); //修改public的score的属性值
Field field1 = class1.getDeclaredField("score");
//直接通过方法(基本数据类型)
field1.setDouble(obj, 99.9);
double d = field1.getDouble(obj);
System.out.println(d); System.out.println("----------------------------------"); //拿到private的name的属性值
Field field2 = class1.getDeclaredField("name");
System.out.println(field2.getName() +" "+ Modifier.toString(field2.getModifiers()));
//可以改变私有属性值
field2.setAccessible(true);
field2.set(obj, "小明");
Object object = field2.get(obj);
System.out.println(object);
}
}
通过反射 修改访问和修改属性的值 Day25的更多相关文章
- python添加、修改、删除、访问类对象属性的2种方法
1.直接添加.修改.删除.访问类对象属性 class Employee (object): empCount = 0 def __init__(self, name, salary) : self.n ...
- C# 操作 Word 修改word的高级属性中的自定义属性2
word的类库使用的是word2007版本的类库,类库信息见下面图片,折腾了半天,终于找到入口,网上 很多说的添加或者修改word的高级属性中的自定义属性都是错误的,感觉都是在copy网上的代码,自己 ...
- 【WPF】当 ItemsSource 正在使用时操作无效。改用 ItemsControl.ItemsSource 访问和修改元素
问题: 中文版报错:Additional information: 当 ItemsSource 正在使用时操作无效.改用 ItemsControl.ItemsSource 访问和修改元素. 英文版报错 ...
- ZT 获得/修改共享互斥量属性:pthread_mutexattr_t
bbs.chinaunix.net/thread-965755-1-1.html 5. 获得/修改共享互斥量属性: #include<pthread.h> intpthre ...
- python基础===修改属性的值
可以以三种不同的方式修改属性的值:直接通过实例进行修改:通过方法进行设置:通过方法进行递增(增加特定的值).下面依次介绍这些方法. class Car(): def __init__(self, ma ...
- 【转】Jquery修改image的src属性,图片不加载问题
1.当点击某一按钮的时候,把图片域中的图片改变一下 <img id="randimg" src="/servlet/CreateValidateNum&quo ...
- DOM学习笔记(三)DOM元素的访问、修改与事件
访问 HTML 元素等同于访问节点,使用的是document对象下的数个getElement方法,然后再对返回的元素(或元素列表)进行具体内容的访问和修改,或者响应对应的事件是操作 一些 DOM 对象 ...
- Python 类中__init__()方法中的形参与如何修改类中属性的值
一.__init__()方法 如果__init__()方法为 class Cat(): def __init__(self,num) : self.num=num Python中类的__init__( ...
- 使用vscode访问和修改远程计算机文件
使用vscode访问和修改远程文件,分三步实现:在远程linux机器上安装rmate:在本地windows上安装openssh:在vscode中安装扩展remote vscode. 1. 在远程lin ...
随机推荐
- git放弃本地所有未提交的修改
1.未添加至暂存区的 git checkout . 2.已添加至暂存区的 git reset HEAD . git checkout .
- HTML5:使用Canvas和Input range控件放大缩小图片,剪裁,并上传图片
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title> ...
- 使用Maven编译运行Storm入门代码(Storm starter)(转)
Storm 官方提供了入门代码(Storm starter),即 Storm安装教程 中所运行的实例(storm-starter-topologies-0.9.6.jar),该入门代码位于 /usr/ ...
- tensorflow使用CPU可以跑(运行),但是使用GPU却不能用的情况
在跑的时候可以让加些选项: with tf.Session(config=tf.ConfigProto(allow_soft_placement=True, log_device_placement= ...
- 树形结构的数据渲染(element-ui&VUE)
在最开始学习的时候,渲染树形数据没有好好理解. 在实际的运用开发中,彻底的走了一遍树形数据,渲染角色权限的业务逻辑. 首先先发送请求获取全部权限树形结构, 其次发送请求获取当前用户的权限, 最后,通过 ...
- light oj 1149 Factors and Multiples(二分匹配)
LightOJ1149 :Factors and Multiples 时间限制:2000MS 内存限制:32768KByte 64位IO格式:%lld & %llu 描述 You w ...
- liunx定时删除文件(产生的日志.........)
linux是一个很能自动产生文件的系统,日志.邮件.备份等.虽然现在硬盘廉价,我们可以有很多硬盘空间供这些文件浪费,让系统定时清理一些不需要的文件很有一种爽快的事情.不用你去每天惦记着是否需要清理日志 ...
- 配置 CentOS 7 的网络,及重命名网卡名
Centos 安装时应配置网络,如果当时没配置好,则装完系统后, 也可通过修改配置文件并重启网络服务进行配置. 说明:CentOS 7.0默认安装好之后是没有自动开启网络连接的! cd /etc/sy ...
- OCR Tesseract 识别报 empty page解决办法
图片分辨率太低导致 周边加空白 然后重新操作,就行了
- springmvc下载一个文档下载接口里的文档
A提供了一个文件下载的接口,在调用的时候可以直接在前端用a标签来调用 <a href="http://" target="_blank">下载< ...