下面的java行将final修饰符分配给列表表示什么?

发布于 2024-12-22 11:12:48 字数 210 浏览 0 评论 0原文

请考虑我的问题。 java 中的最终值无法更改。

private final List<Integer> list = new ArrayList<Integer>();

上面的列表实例化是最终的。现在我可以添加任何元素。 之后我可以指定 list=null 吗?

请帮我。

谢谢!

Please consider my question. final values cannot be changed in java.

private final List<Integer> list = new ArrayList<Integer>();

above list instantiation is of final. now i can add any elements.
after that can i assign list=null?

Please help me.

Thanks!

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(4

半城柳色半声笛 2024-12-29 11:12:48

这意味着变量 list 是最终的。

这意味着您不能再次为其分配其他内容。

完成后为其分配一个值(引用),如下所示:

private final List<Integer> list = new ArrayList<Integer>();

您不能再执行以下操作:

list = new ArrayList<Integer>(); //this is invalid because you are trying to assign something else the variable list

list.add(new Integer(123)); 此代码有效吗?

这是完全有效的。您只需将一个对象添加到变量 list 引用的 ArrayList 中即可。

final 关键字的使用限制变量 list 而不是它引用的 ArrayList 对象。

That means the variable list is final.

Which means you can not assign something else to it again.

Once you are done assign a value (reference) to it as follows:

private final List<Integer> list = new ArrayList<Integer>();

You can not do something as below again:

list = new ArrayList<Integer>(); //this is invalid because you are trying to assign something else the variable list

list.add(new Integer(123)); is this code valid?

It's perfectly valid. You are just adding an object to the ArrayList that variable list is referencing.

The usage of final keyword is restricting the variable list not the ArrayList object that it's referencing.

滥情哥ㄟ 2024-12-29 11:12:48

Java 中的 new 关键字创建一个新对象并返回其引用。因此,在您的代码中,list 变量存储对新列表的引用。声明它为最终意味着存储在 list 中的引用是最终的,并且不能更改。

实际列表仍然可以修改。

The new keyword in Java creates a new Object and returns its reference. Hence, in your code, the list variable stores the reference to the new list. Declaring it final means that the reference stored in list is final, and cannot be changed.

The actual list is still modifiable.

漆黑的白昼 2024-12-29 11:12:48

对于您的代码,如果您有以下内容:

private final List<Integer> list = new ArrayList<Integer>();

这是可能的:

list.add(3);

这是不允许的:

list = new ArrayList<Integer>();

For your code and if you have this:

private final List<Integer> list = new ArrayList<Integer>();

This is possible:

list.add(3);

This is not allowed:

list = new ArrayList<Integer>();
剑心龙吟 2024-12-29 11:12:48

final 关键字表示变量只能初始化一次。它保证分配给该变量的对象的不变性。换句话说,它说明了变量可以引用的内容,但没有说明引用对象的内容。

The final keyword indicates that a variable can only be initialized once. It does not guarantee immutability of the object assigned to that variable. In other words, it says something about what a variable can refer to, but nothing about the contents of the referent.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文