可以重新分配Java最终引用
我已经了解到最后一个关键字意味着引用无法更改。 如果关键字不能被重新分配,为什么这可以工作可以重新分配Java最终引用,java,Java,我已经了解到最后一个关键字意味着引用无法更改。 如果关键字不能被重新分配,为什么这可以工作 for(int i =0;i<10;i++){ final TextView tv = new TextView(); } 它起作用了 final Object obj = new SomeThing(); obj.setAttribute() 我想知道关键字final是用来描述 引用或它引用的对象。变量存在于中,由大括号{和}分隔 变量tv在for块的范围内。每次循环执行时,都会再次创建变量
for(int i =0;i<10;i++){
final TextView tv = new TextView();
}
它起作用了
final Object obj = new SomeThing();
obj.setAttribute()
我想知道关键字final
是用来描述
引用或它引用的对象。变量存在于中,由大括号{
和}
分隔
变量
tv
在for
块的范围内。每次循环执行时,都会再次创建变量。没有一个最终变量被重新分配;相反,每次循环运行时都会创建变量。final for objects意味着一旦声明为final的对象不能使用new关键字重新初始化。但是,它不会阻止您修改对象属性。此外,一旦指定了最终参照,就不能将其指向其他对象
对于像int这样的文本,这意味着一旦该文本被初始化,它的值就不能被修改
循环的案例:
变量仅在for
-循环的主体内有效
因此,只要在体内只执行一次,就可以在循环中重新分配它
大小写-.setAttribute
:
final
表示您不能更改对象的引用(例如。
obj=…
)
但它不会使对象不可变(如C++中的const
)
它标志着参考。在for
循环中,不能在声明的范围内重新分配它。也就是说,如果你试图在声明行后面的tv
中放入一些内容,它将不会起作用。@realponsignist这太好了。我知道了。所以退出作用域时会破坏tv
,循环运行时会再次创建again@Samin是的。
final Object obj = new SomeThing();
obj.setAttribute()