1. package com.sxt.field;
  2. /*
  3. * 通过反射拿到属性值
  4. * 修改public属性值
  5. * 修改private属性值
  6. * 缺点:可读性差;代码复杂
  7. * 优点:灵活;可以访问修改private属性值
  8. * 以后多运用setXxx getXxx 修改属性的值
  9. */
  10. import java.lang.reflect.Field;
  11. import java.lang.reflect.Modifier;
  12.  
  13. public class TestField {
  14. public static void main(String[] args) throws Exception {
  15. //设置私有属性值
  16. Class<?> class1 = Class.forName("com.sxt.entity.Student");
  17. //创建对象
  18. Object obj = class1.newInstance();
  19. Field[] fields = class1.getDeclaredFields();
  20. //遍历所有属性
  21. for(Field f : fields){
  22. System.out.println(f.getName()+"\t"+Modifier.toString(f.getModifiers()));
  23. }
  24. System.out.println("----------------------------------");
  25.  
  26. //修改public的score的属性值
  27. Field field1 = class1.getDeclaredField("score");
  28. //直接通过方法(基本数据类型)
  29. field1.setDouble(obj, 99.9);
  30. double d = field1.getDouble(obj);
  31. System.out.println(d);
  32.  
  33. System.out.println("----------------------------------");
  34.  
  35. //拿到private的name的属性值
  36. Field field2 = class1.getDeclaredField("name");
  37. System.out.println(field2.getName() +" "+ Modifier.toString(field2.getModifiers()));
  38. //可以改变私有属性值
  39. field2.setAccessible(true);
  40. field2.set(obj, "小明");
  41. Object object = field2.get(obj);
  42. System.out.println(object);
  43. }
  44. }

通过反射 修改访问和修改属性的值 Day25的更多相关文章

  1. python添加、修改、删除、访问类对象属性的2种方法

    1.直接添加.修改.删除.访问类对象属性 class Employee (object): empCount = 0 def __init__(self, name, salary) : self.n ...

  2. C# 操作 Word 修改word的高级属性中的自定义属性2

    word的类库使用的是word2007版本的类库,类库信息见下面图片,折腾了半天,终于找到入口,网上 很多说的添加或者修改word的高级属性中的自定义属性都是错误的,感觉都是在copy网上的代码,自己 ...

  3. 【WPF】当 ItemsSource 正在使用时操作无效。改用 ItemsControl.ItemsSource 访问和修改元素

    问题: 中文版报错:Additional information: 当 ItemsSource 正在使用时操作无效.改用 ItemsControl.ItemsSource 访问和修改元素. 英文版报错 ...

  4. ZT 获得/修改共享互斥量属性:pthread_mutexattr_t

    bbs.chinaunix.net/thread-965755-1-1.html 5.   获得/修改共享互斥量属性:    #include<pthread.h>    intpthre ...

  5. python基础===修改属性的值

    可以以三种不同的方式修改属性的值:直接通过实例进行修改:通过方法进行设置:通过方法进行递增(增加特定的值).下面依次介绍这些方法. class Car(): def __init__(self, ma ...

  6. 【转】Jquery修改image的src属性,图片不加载问题

    1.当点击某一按钮的时候,把图片域中的图片改变一下    <img id="randimg" src="/servlet/CreateValidateNum&quo ...

  7. DOM学习笔记(三)DOM元素的访问、修改与事件

    访问 HTML 元素等同于访问节点,使用的是document对象下的数个getElement方法,然后再对返回的元素(或元素列表)进行具体内容的访问和修改,或者响应对应的事件是操作 一些 DOM 对象 ...

  8. Python 类中__init__()方法中的形参与如何修改类中属性的值

    一.__init__()方法 如果__init__()方法为 class Cat(): def __init__(self,num) : self.num=num Python中类的__init__( ...

  9. 使用vscode访问和修改远程计算机文件

    使用vscode访问和修改远程文件,分三步实现:在远程linux机器上安装rmate:在本地windows上安装openssh:在vscode中安装扩展remote vscode. 1. 在远程lin ...

随机推荐

  1. jquery版的网页倒计时效果

    <!doctype html> <html> <head> <meta charset="utf-8"> <title> ...

  2. Objective-C头文件导出工具class-dump

    首先,这个工具是开源的.作者网站:http://stevenygard.com/projects/class-dump/ 用途: 分析库文件或可执行文件,得到Objective-C类和部分C结构体的信 ...

  3. mysql8下载安装及配置

    mysql8下载和安装 一.下载 官网地址:https://dev.mysql.com/downloads/mysql/8.0.html 选择“downloads”-->"mysql ...

  4. linux性能监视工具sar

    sar是一个优秀的一般性能监视工具,它可以输出Linux所完成的几乎所有工作的数据.sar命令在sysetat rpm中提供.示例中使用sysstat版本5.0.5,这是稳定的最新版本之一.关于版本和 ...

  5. SASS:sass语法参照列表及教程

    http://sass-lang.com/documentation/file.SASS_REFERENCE.html 保存一下,上面的链接包括了scss中所有语法规则. 转载自:http://www ...

  6. python中在计算机视觉中的库及基础用法

    基于python脚本语开发的数字图像处理包有很多,常见的比如PIL.Pillow.opencv.scikit-image等.PIL和pillow只提供了基础的数字图像处理,功能有限:OpenCV实际上 ...

  7. ubuntu安装verilog

    1.安装verilog sudo apt-get install verilog 2.安装gtkwave sudo apt-get install gtkwave 3.安装dinotrace(和gtk ...

  8. Linux下备份Mysql所有数据库

    需求:备份除了mysql系统数据库的所有数据库 以下为Shell脚本,只需要修改用户密码即可 MYSQL_USER=root MYSQL_PASS=123456 MYSQL_CONN="-u ...

  9. arcgis投影测试

    <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title> ...

  10. 2-3 Numpy+Matplotlib可视化(一)

    (1)pyplot基础绘图 # -*-coding:utf-8-*- # !/usr/bin/env python # Author:@vilicute import numpy as np impo ...