java - java 全局对象引用在本地没有改变
问题描述
我有一个全局标志来启用日志记录/禁用日志记录和一个类级别标志。
这是代码:
public class Utils {
public static volatile boolean GLOBLE_LOG_FLAG = true;
}
public class TestClass {
private static volatile Boolean LOCAL_LOG_FLAG = Utils.GLOBLE_LOG_FLAG;
public void test() {
System.out.println("LOCAL_LOG_FLAG: = " + LOCAL_LOG_FLAG);
Utils.GLOBLE_LOG_FLAG = false;
System.out.println("now LOCAL_LOG_FLAG: = " + LOCAL_LOG_FLAG);
}
}
public static void main(String[] args) {
TestClass class1 = new TestClass();
class1.test();
}
Output:
LOCAL_LOG_FLAG: = true
now LOCAL_LOG_FLAG: = true
为什么LOCAL_LOG_FLAG
我设置时不改变Utils.GLOBLE_LOG_FLAG = false;
如果 java 正在使用对象引用,它应该LOCAL_LOG_FLAG
在我分配时更改为 falseUtils.GLOBLE_LOG_FLAG = false;
不是吗?我在这里有什么错误?
谢谢
解决方案
推荐阅读
- javascript - 函数 javascript args 像 jQuery 一样接收值
- swift - 计算字符串几何尺寸时的差异
- javascript - 当我单击单选按钮时,它的 true 或自动其他 Span 值变为 false
- haskell - 对列表中的一对列表 Haskell
- reactjs - 使用 HOC、React Context 和 componentDidMount API 从 Firebase 获取 uid
- c# - System.Data.SqlClient.SqlException:''('.' 附近的语法不正确。'
- java - 在 Spring Web 应用程序中创建自定义 JSONresponse
- javascript - 比较数组并添加?
- angular - 如何在我的 ionic4 应用程序中检索特定的详细信息
- elasticsearch - Kibana 6.5.4 创建索引模式卡住