Простой вопрос, у меня есть такой код:
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
, когда я пытаюсь сделать это выше.Насколько я знаю, object
в scala - это одноэлементный класс, так что это будет тип, да, но также и значение, единственное значение своего собственного типа.
Что я хочу сделатьэто что-то вроде:
class Foo[A](bar: Int)(implicit context: Context[A]) {
def baz = context.t.baz
}
Кто-нибудь может сказать мне, как решить эту проблему или иметь лучшую идею для решения этой проблемы?