在Scala中,如果我們有爲類參數自動生成getter(以避免case類)?
class Foo(bar:String)
我們可以創建一個新的對象,但不能訪問bar
val foo = new Foo("Hello")
foo.bar // gives error
但是,如果我們聲明Foo
是一個case class
這個工程:
case class Foo(bar:String)
val foo = Foo("hello")
foo.bar // works
因爲這個原因,我不得不把許多我的類作爲個案類。否則,我必須寫樣板代碼訪問bar
:
class Foo(bar:String) {
val getbar = bar
}
所以我的問題是:
- 有什麼辦法來「修理」這種不使用的情況下類或樣板代碼?
- 在這種情況下使用大小寫類是一個好主意嗎? (或案例類別的缺點是什麼?)
我想第二個值得一個單獨的問題。
true'val'確實保存了1個字符。然而,知道案例班爲什麼不好,這將是一件好事。 – Jus12
@ Jus12我根據你的問題做了一個編輯,總之 - 更靈活 –
實際上,你可以編寫案例類Foo(private val bar:String)來獲得案例類中的私有字段 –