将可变对象设置为'val'意味着什么?

blu*_*sky 4 scala

我将java Pojo实例变量设置为'val'并在初始化后更改其状态.这会引起任何问题,因为它真的是'var'吗?

val st = new Pojo();
st.setInt(0);
Run Code Online (Sandbox Code Playgroud)

Bri*_*new 9

它还是一个val.的参考不能被改变,但对象称为可具有其内部状态发生突变.

val 意味着你不能做这个重新分配:

val st = new Pojo()
st = new Pojo()      // invalid!
Run Code Online (Sandbox Code Playgroud)

为此你需要一个var:

var st = new Pojo()
st = new Pojo()      // ok
Run Code Online (Sandbox Code Playgroud)