首页 > 编程语言 >java如何使用反射修改final变量呢?

java如何使用反射修改final变量呢?

时间:2022-10-15 10:31:20浏览次数:80  
标签:反射 java 变量 Field modifiersField field final 赋值

转自:

   ​​ http://www.java265.com/JavaJingYan/202205/16521708133334.html​

  final变量:

      当final修饰成员变量来说

      如果使用了final关键字修饰,那么这个变量也照样是不可变的 ① 由于成员变量具有默认值,所以用了final之后必须手动赋值,不会再给默认值了 ② 对于final的成员变量,要么使用直接赋值,要么通过构造方法赋值,只能二选一 ③ 必须保证类当中所有重载的构造方法,都最终会对final的成员变量进行赋值

     当final修饰局部变量的时候,这个局部变量就不能更改,“一次赋值,终生不变” 

     注意事项:

       对于 基本类型 来说,不可改变指的是变量当中的数据不可改变,但是对于 引用类型 来说,不可改变的指的是变量当中的地址值不可改变

 

private void updateFinalModifiers(Field field) throws NoSuchFieldException, IllegalAccessException {
field.setAccessible(true);
Field modifiersField = Field.class.getDeclaredField("modifiers");
modifiersField.setAccessible(true);
modifiersField.setInt(field, field.getModifiers() & ~Modifier.FINAL);
}

filed.set()

标签:反射,java,变量,Field,modifiersField,field,final,赋值
From: https://blog.51cto.com/u_15736642/5759113

相关文章

  • Java注解(2):实现自己的ORM
    搞过Java的码农都知道,在J2EE开发中一个(确切地说,应该是一类)很重要的框架,那就是ORM(ObjectRelationalMapping,对象关系映射)。它把Java中的类和数据库中的表关联起来,可以像操......
  • JavaWeb学习3:Tomcat
    1、安装Tomcathttps://tomcat.apache.org/2、Tomcat启动和关闭启动关闭3、Tomcat的配置可以配置启动的端口号Tomcat默认端口号:8080<Connectorport="8080"......
  • JavaWeb学习4:Http
    1、什么是http超文本传输协议(HyperTextTransferProtocol,HTTP)是一个简单的请求-响应协议,它通常运行在TCP之上。2、两个时代HTTP/1.0客户端可以与web服务器连接后,只......
  • JavaWeb学习5:Maven
    为什么要学习这个技术?在javaweb开发中,需要使用大量的jar包,这种jar包需要手动的导入如何让一个东西自动导入和配置jar包所以Maven诞生了maven就是一个架构管理工具1......
  • JavaWeb学习6:Servlet
    1、什么是Servletsun公司用于开发动态web的一种技术sun公司在这里API中提供了一个接口,叫做Servlet,如果想开发一个Servlet程序,只需要完成两个步骤:编写一个类,实现Servle......
  • 如何在 JavaScript中将axios与async/await一起使用?
    Axios是一个基于promise的处理异步HTTP请求的客户端。本指南将演示如何通过async/await处理这些请求。安装和使用要使用Axios,您需要使用npmnpminstallaxios......
  • 肖sir__java_string概述
    string字符串 1、字符串的操作  2、一个登录的账号和密码实时使用字符串账号:字符串密码:字符串publicclassjava2_进阶001{publicstaticvoidmain(Str......
  • 肖sir__java__Java访问控制修饰符详解(public、 private、protected 和 friendly)
    1、  1.private用private修饰的类成员,只能被该类自身的方法访问和修改,而不能被任何其他类(包括该类的子类)访问和引用。因此,private修饰符具有最高的保护级别。例......
  • JavaFx 使用字体图标记录
    原文:JavaFx使用字体图标记录-Stars-One的杂货小窝之前其实也是研究过关于字体图标的使用,还整了个库Tornadofx学习笔记(4)——IconTextFx开源库,整合5000+个字体图标......
  • java: Retirement
    /***版权所有2022涂聚文有限公司*许可信息查看:*描述:*CoreJava,VolumeI:Fundamentals,TwelfthEditionbyCayS.Horstamnn*CoreJava,VolumeII:Adv......