通过反射 修改访问和修改属性的值 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 ...
随机推荐
- jquery版的网页倒计时效果
<!doctype html> <html> <head> <meta charset="utf-8"> <title> ...
- Objective-C头文件导出工具class-dump
首先,这个工具是开源的.作者网站:http://stevenygard.com/projects/class-dump/ 用途: 分析库文件或可执行文件,得到Objective-C类和部分C结构体的信 ...
- mysql8下载安装及配置
mysql8下载和安装 一.下载 官网地址:https://dev.mysql.com/downloads/mysql/8.0.html 选择“downloads”-->"mysql ...
- linux性能监视工具sar
sar是一个优秀的一般性能监视工具,它可以输出Linux所完成的几乎所有工作的数据.sar命令在sysetat rpm中提供.示例中使用sysstat版本5.0.5,这是稳定的最新版本之一.关于版本和 ...
- SASS:sass语法参照列表及教程
http://sass-lang.com/documentation/file.SASS_REFERENCE.html 保存一下,上面的链接包括了scss中所有语法规则. 转载自:http://www ...
- python中在计算机视觉中的库及基础用法
基于python脚本语开发的数字图像处理包有很多,常见的比如PIL.Pillow.opencv.scikit-image等.PIL和pillow只提供了基础的数字图像处理,功能有限:OpenCV实际上 ...
- ubuntu安装verilog
1.安装verilog sudo apt-get install verilog 2.安装gtkwave sudo apt-get install gtkwave 3.安装dinotrace(和gtk ...
- Linux下备份Mysql所有数据库
需求:备份除了mysql系统数据库的所有数据库 以下为Shell脚本,只需要修改用户密码即可 MYSQL_USER=root MYSQL_PASS=123456 MYSQL_CONN="-u ...
- arcgis投影测试
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title> ...
- 2-3 Numpy+Matplotlib可视化(一)
(1)pyplot基础绘图 # -*-coding:utf-8-*- # !/usr/bin/env python # Author:@vilicute import numpy as np impo ...