斯卡拉對象在Scala的對象是單身......所以,如果我做:內特質
trait SimpleTrait {
def setString(s: String): Unit = {
InnerTraitObject setString s
}
def getString(): String = {
return InnerTraitObject getString
}
object InnerTraitObject {
var str: String = ""
def setString(s: String): Unit = {
str = s
}
def getString(): String = {
return str
}
}
}
然後
class SimpleClass extends SimpleTrait{
/// empty impl
}
和:
object App {
def main(args: Array[String]): Unit = {
val a = new SimpleClass();
val b = new SimpleClass();
a.setString("a");
println("A value is " + a.getString());
println("B value is " + b.getString());
}
}
我想看到
A value is a
B value is a
,但我得到
A value is a
B value is
我的問題是: 如果對象是單身,那麼爲什麼,如果我把它放進特質則表現得像普通的對象?
如果你將'InnerTraitObject'移到'SimpleTrait'之外,你會得到想要的行爲。但這不是你的問題的答案。 – 2011-05-04 11:26:50
我知道,因爲現在我使用黑客。 – 2011-05-04 11:32:26