scala 2.10.4에서 다음 스크립트를 실행합니다. a.classOp의 결과가 MyPage 여야합니다. 왜 아무것도 아닌가?scala 암시 적 매개 변수 유형 추론
scala> trait PageModel {
| def classOp[T](implicit manifest: Manifest[T]) {
| println("Class: " + manifest.runtimeClass.getName)
| }
| }
defined trait PageModel
scala> class MyPage extends PageModel
defined class MyPage
scala> val a = new MyPage
a: MyPage = [email protected]
scala> a.classOp
Class: scala.runtime.Nothing$
편집 :
는 내가 대답을 얻을 생각합니다. 감사! 그러나 2.9.3에서 실행되는 동일한 코드가 java.lang.Object를 제공한다는 것은 매우 흥미 롭습니다. 같은 행동을해야합니까? 나는 2.9.3에서도 NoManifest를 본다.
scala> trait PageModel{
| def classOp[T](implicit m: Manifest[T]) {
| println("Class: " + manifest[T].erasure.getName)
| }
| }
defined trait PageModel
scala> class MyPage extends PageModel
defined class MyPage
scala> val a = new MyPage
a: MyPage = [email protected]
scala> a.classOp
Class: java.lang.Object
답변 주셔서 감사합니다! –