1
어쩌면 바보 같은 질문이지만, 다음을 컴파일하는 것은 error: could not find implicit value for evidence parameter of type Outer.Inner.MyImplicit[Int]
제공 :암시 적 객체를 가져 오는 방법은 무엇입니까?
object Outer {
import Inner._
def someMethod[T : MyImplicit] = {}
someMethod[Int]
object Inner {
sealed trait MyImplicit[T]
implicit case object IntImplicit extends MyImplicit[Int]
}
}
왜 Outer
객체 가져 오기에도 불구 IntImplicit
를 볼 수없는 이유는 무엇입니까? 컴파일러에서 Inner
개체 내에 IntImplicit
을 찾는 방법이 있습니까?
업데이트 : Inner
을 반입하지 않으면 어떻게됩니까? 어떻게 가져 오겠습니까?
object Outer {
import Other._
def someMethod[T : MyImplicit] = {}
someMethod[Int]
}
object Other {
sealed trait MyImplicit[T]
implicit case object IntImplicit extends MyImplicit[Int]
}
감사합니다.
@ Sergey 대신 별도의 (중첩되지 않은) 객체를 가지고 있다면 어떻게 할 것인가? (업데이트를 참조하십시오) – Lasf
명시 적 서명이있을 때 순서가 중요하지 않다고 덧붙입니다 :'implicit val IntImplicit : MyImpicit [Int] = new MyImplicit [Int] {}'. 그러나'case object'에 넣을 방법이 없습니다. –
내 업데이트에 대한 내 대답이라고 생각합니다. 감사. – Lasf