`

JAVA修改静态常量的方法

    博客分类:
  • java
阅读更多

RT,代码块,一目了然

 

/*
以下省略xxx自定义方法名&参数&返回值的代码
...
*/
//通过打开Field权限来实现静态常量的值
Field modifiersField = Field.class.getDeclaredField("modifiers"); 
modifiersField.setAccessible(true); 
//这里的filed才是真正需要修改值的静态常量对象,当然这个filed是外部传入的Field对象
modifiersField.setInt(field, field.getModifiers() & ~Modifier.FINAL); 
//这里的buffer只是外部传入的stringbuffer对象,此处的field的值类型是String
field.set(null, buffer.toString());
 

 

分享到:
评论

相关推荐

    Beatles9527#StudyNotes#_1Java类更改常量后编译不生效1

    问题原因:在Java文件中,指向编译时static final的静态常量, 会被在运行时解析为一个局部的常量值(也就是说静态常量在编译后,成为了常量,而不是原先

    JAVA修改类文件编译不生效

    我们可以将常量类中的静态常量修改为使用 GET、SET 方法来返回常量值,例如: ```java public class AppConst { private static String strConst1 = "String1"; private static String strConst2 = "String2"; ....

    议Java语言中常量定义的注意事项.pdf

    4. `static`关键字的使用:在类级别上定义常量,通常会与`final`一起使用,创建静态常量。这样,无论创建多少个类实例,常量都只有一个副本,节省内存资源。例如: ```java public class Constants { public ...

    java 常量 变量 详细实例

    这些代码可能涉及了如何声明、初始化、使用以及修改常量和变量的示例,通过学习和实践这些例子,你可以更深入地掌握Java中常量和变量的运用。建议逐步分析和运行这些代码,以加深理解和记忆。同时,结合理论知识与...

    一种基于Spring的java程序常量管理思路

    这种方式使得常量的修改和查找变得非常方便,同时也避免了硬编码常量。 此外,`Properties`类在Java中用于加载和处理属性文件,常用于存储配置信息。我们可以创建一个`constants.properties`文件,存储项目中的常量...

    java的静态域实例域

    - 避免在构造方法中修改静态域,这可能会影响类的其他实例。 - 合理利用访问修饰符(如private, public, protected)控制域的可见性,以保护数据的安全性。 - 对于不变对象(immutable objects),所有域都是final和...

    yanxiaonan0201-lyz_naocs-master_java_

    在本项目中,反射被用于动态修改Java类中的静态常量。通常,静态常量一旦被初始化,其值就不能改变。但通过反射,我们可以绕过这一限制,直接访问并修改常量的字节码,从而达到动态更新的目的。 在没有使用`@Value`...

    探究Java常量本质及三种常量池(小结)

    Java中的常量池有三种形态:静态常量池、字符串常量池和运行时常量池。静态常量池是class文件中的常量池,主要存储字面量和符号引用量。字面量是Java语言层面常量的概念,如文本字符串、声明为final的常量值等。符号...

    【Java基础】Java8新特性—接口中使用default和static关键字

    接口中的变量默认类型是public static final,也是就是说是 公有静态常量 。 而方法默认是public abstract,公有抽象方法,但是事实真的是这样吗? 一.新特性 Java 1.8对接口有两个方面的增强:接口中可以添加使用...

    java中带static关键字的程序内存分析

    - **方法区(Method Area)/元空间(MetaSpace)**:包含类的结构信息,如类名、方法信息、常量池以及静态变量。在Java 8之后,方法区被元空间取代,元空间主要存储类的元数据,使用的是 native 内存。 4. **加载...

    Java 继承和方法重写

    Java 8 开始支持默认方法和静态方法。 **二、方法重写(Override)** 1. **定义**: 方法重写是指子类重新定义父类中的某个方法,保持方法名、参数列表和返回类型不变,但可以修改方法的实现。 2. **重写规则**...

    Java岗面试核心MCA版.pdf

    2. 静态方法和实例方法的区别:静态方法是类的方法,而实例方法是对象的方法。 内部类 1. 内部类的分类:静态内部类、成员内部类、局部内部类、匿名内部类。 2. 内部类的优点:内部类可以访问外部类的私有成员...

    Java变量常量声明和定义原理解析

    常量举例:代表常数,便于程序的修改(例如:圆周率的值)增强程序的可读性(例如:常量UP、DOWN、LEFT和RIGHT分别代表上下左右,其数值分别是1、2、3和4)。 二、变量声明 Java是一种强类型语言,每个变量都必须...

    ASM操作字节码,动态生成Java类class文件

    5. **Opcode**: ASM提供了一系列的常量,表示Java字节码的指令,如IADD(加法)、GETSTATIC(获取静态字段)等。 在模拟Spring的AOP实现原理时,我们可以用ASM创建一个代理类,这个代理类会在目标方法调用前后插入...

    Java继承,多态,接口,常量,代码块

    接口在Java中是一种完全抽象的类型,它只包含常量和抽象方法。接口使用`interface`关键字声明,它可以被类实现(implements),以实现其定义的所有方法。接口提供了多继承的能力,一个类可以实现多个接口,从而达到...

    Java2Pas(Java代码转换成Delphi代码)

    5. 静态与非静态成员:Java的静态成员会转换为Delphi的类方法或常量。 然而,值得注意的是,Java2Pas可能无法完美地处理所有Java特性,比如泛型、反射、线程等高级特性,这些在转换后可能需要额外的代码调整。此外...

    Java笔记Java笔记Java笔记

    成员常量和静态常量必须初始化定义,使用关键字 final,常量一旦被定义赋值,则不可再被修改。 Java 中的数据类型可以分为两类:基本数据类型和引用数据类型。基本数据类型有八种,包括 byte、short、int、long、...

    java中final和static的区别

    1. final 修饰变量:表示该变量一旦被初始化,程序无法修改变量的值,该变量变成了一个常量。注意,系统不会默认为它初始化,只有两种初始化的方式:在定义处和构造方法中对其初始化。 2. final 修饰方法中的参数...

    Java面试宝典(基础版)

    接口不能包含构造方法,不能有实例变量(只有静态常量),可以有默认方法(JDK8引入)和静态方法。一个类可以实现多个接口。 - **选择使用抽象类还是接口**:当需要定义一组相关的行为,而不仅仅是类型标识时,...

    fckeditor-java-2.4.1修改支持jdk1.4

    3. **动态代理**:如果使用了`java.lang.reflect.Proxy`,可能需要使用其他方式实现类似功能,比如静态代理或AOP框架。 4. **其他新特性**:包括try-with-resources、变长参数、foreach循环等,都需要相应地进行...

Global site tag (gtag.js) - Google Analytics