下面的java行将final修饰符分配给列表表示什么?
请考虑我的问题。 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 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(4)
这意味着变量
list
是最终的。这意味着您不能再次为其分配其他内容。
完成后为其分配一个值(引用),如下所示:
您不能再执行以下操作:
这是完全有效的。您只需将一个对象添加到变量
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:
You can not do something as below again:
It's perfectly valid. You are just adding an object to the
ArrayList
that variablelist
is referencing.The usage of
final
keyword is restricting the variablelist
not theArrayList
object that it's referencing.Java 中的
new
关键字创建一个新对象并返回其引用。因此,在您的代码中,list
变量存储对新列表的引用。声明它为最终意味着存储在list
中的引用是最终的,并且不能更改。实际列表仍然可以修改。
The
new
keyword in Java creates a new Object and returns its reference. Hence, in your code, thelist
variable stores the reference to the new list. Declaring it final means that the reference stored inlist
is final, and cannot be changed.The actual list is still modifiable.
对于您的代码,如果您有以下内容:
这是可能的:
这是不允许的:
For your code and if you have this:
This is possible:
This is not allowed:
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.