簡單的問題,我有這樣的代碼:值的對象
class Context[A] {
def t: A
}
object Context {
implicit object StandardContext extends Context[SomeObject] {
def t = SomeObject
}
}
SomeObject
是object
保存價值和功能,我想在我的Context
訪問。不幸的是,我想包括A
的不同類型沒有共同的父類,除了java.lang.Object
。
SomeObject
的定義是這樣的:
final object SomeObject {
def func1 = ...
def func2 = ...
}
在一些代碼,不是我的。但是當我嘗試上面的東西時,Scala編譯器會抱怨SomeObject is not a value
。據我所知,scala中的object
是一個單例類,所以它是一個類型,是的,也是一個值,它是它自己類型的唯一值。
我想要做的是這樣的東西:
class Foo[A](bar: Int)(implicit context: Context[A]) {
def baz = context.t.baz
}
任何人都可以告訴我怎麼解決這個問題還是有解決它的一個更好的主意嗎?
您正在混合具有值的類型。'Context'需要一個類型參數,'SomeObject'是一個值,一個對象而不是一個類型。 「Context」是什麼意思你的類型'A'? 'SomeObject'從哪裏來?我需要更多信息來回答。 – 2011-03-20 17:54:17
@Peter Schmitz:編輯,希望現在更清楚。 – Lanbo 2011-03-20 22:50:39
「據我所知,scala中的一個對象是一個單例類,所以它將是一個類型,是的,但也是一個值,它是它自己類型的唯一值。」你正在考慮我想的'案例對象'。 – 2011-03-21 06:22:32