gpt4 book ai didi

Java:为什么静态字段彼此都是 "independent"?

转载 作者:行者123 更新时间:2023-12-01 06:55:47 26 4
gpt4 key购买 nike

在以下代码中,set 方法更改 Calendar 类的字段值。字段YEAR 被声明为static int YEAR。那么为什么通过创建 Calendar 类的两个对象,一个对象的更改会反射(reflect)到另一个对象呢?在这里这不会发生。我想问一下Java开发者是如何实现这个的?

Calendar calendar = new GregorianCalendar();
Calendar cal = new GregorianCalendar(2011,9,13);
System.out.println(calendar.get(Calendar.YEAR));
System.out.println(cal.get(Calendar.YEAR));

最佳答案

Calendar.YEAR 是一个常量,仅用于Calendar 使用的命名字段。该字段的静态的:它可以并且将会在Calendar的实例之间变化。

Calendar 为日期和时间的不同组成部分定义了许多此类字段名称,专门用于相应字段的 get 和 set 操作。

Here's javadoc 中 Calendar.YEAR 的部分。

至于实现,setget 方法可以识别这些不同的字段类型,并根据传入的常量更改实例中的值。它就像 getset 中的一个大 switch 语句,切换所有字段值。

关于Java:为什么静态字段彼此都是 "independent"?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12410072/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com