在Java中,我有时使用类变量为每个新实例分配唯一的ID.我做的事情
public class Foo {
private static long nextId = 0;
public final long id;
public Foo() {
id = nextId;
nextId++;
}
[...]
}
Run Code Online (Sandbox Code Playgroud)
我怎样才能在Scala中执行此操作?
Tho*_*ung 64
伴随对象上的变量:
object Foo{
private var current = 0
private def inc = {current += 1; current}
}
class Foo{
val i = Foo.inc
println(i)
}
Run Code Online (Sandbox Code Playgroud)
Car*_*icz 25
放大托马斯的回答:
该object定义通常与类放在同一个文件中,并且必须具有相同的名称.这会导致具有类名称的对象的单个实例,其中包含您为其定义的任何字段.
换句话说,一个方便的自己动手的Singleton构造套件.
在JVM级别,对象定义实际上导致新类的定义; 我认为它与$附加的名称相同,例如Foo$.以防万一你必须用Java来互操作这些东西.
| 归档时间: |
|
| 查看次数: |
32111 次 |
| 最近记录: |