[SCALA] 어떻게 ClassTag 폼 TypeTag를 얻을, 또는 두 가지 모두 같은 시간에하는?
SCALA어떻게 ClassTag 폼 TypeTag를 얻을, 또는 두 가지 모두 같은 시간에하는?
나는이 같은 일부 코드가 있습니다 :
class ReflectiveJsonFormat[T:TypeTag] extends JsonFormat[T] {
def write(x: T) : JsValue = {
val t = typeOf[T]
val getters = t.declarations.filter { s => s.isMethod && s.asMethod.isGetter }
val mirror = runtimeMirror(this.getClass.getClassLoader)
val instanceMiror = mirror.reflect(x)
}
}
그 마지막 줄은 실패 :
나는 TypeTag가 ClassTag보다 더 많은 정보를 원하시면 알았는데? 나는 TypeTag에서 ClassTag를받을 수 있습니까? TypeTag 및 ClassTag 모두 -하지 않으면, T는 두 개의 컨텍스트 경계가 말하는 몇 가지 문법이있다? 또는, 당신은 어떻게 그렇지 않으면이 코드를 해결하는 것입니다?
해결법
-
==============================
1.그게 당신이 후에 어떤 경우 음 스칼라 지원 여러 컨텍스트 경계를 수행합니다
그게 당신이 후에 어떤 경우 음 스칼라 지원 여러 컨텍스트 경계를 수행합니다
class ReflectiveJsonFormat[T:TypeTag:ClassTag]
-
==============================
2.라이브러리는 제공하지 않습니다 내장 방법 직접이 ClassTag에 TypeTag 변환,하지만 당신은 하나를 쓸 수 :
라이브러리는 제공하지 않습니다 내장 방법 직접이 ClassTag에 TypeTag 변환,하지만 당신은 하나를 쓸 수 :
import reflect.runtime.universe._ import reflect.ClassTag def typeToClassTag[T: TypeTag]: ClassTag[T] = { ClassTag[T]( typeTag[T].mirror.runtimeClass( typeTag[T].tpe ) ) }
암시 적 ClassTag이 필요하기 전에 그런 다음 방법에 단지 추가 :
implicit val c = typeToClassTag[T]
from https://stackoverflow.com/questions/18729321/how-to-get-classtag-form-typetag-or-both-at-same-time by cc-by-sa and MIT license
'SCALA' 카테고리의 다른 글
[SCALA] 스파크 ML VectorAssembler 이상한 출력을 반환 (0) | 2019.11.10 |
---|---|
[SCALA] 이유는 무엇입니까 배열에없는 배열의 == 함수 반환 진정한 (1,2) == 배열 (1,2)? (0) | 2019.11.10 |
[SCALA] 스파크 도서관에서 NPE가 발생합니다 별개의 전화와 함께지도 (0) | 2019.11.10 |
[SCALA] 어떻게 자바에서 스칼라 싱글 톤 객체를 사용할 수 있습니까? (0) | 2019.11.10 |
[SCALA] 왜이 REPL에서 같은 이름의 변수를 선언 할 수있다? (0) | 2019.11.10 |