[SCALA] 나는 런타임에 변수의 유형을 얻으려면
SCALA나는 런타임에 변수의 유형을 얻으려면
나는 런타임에 변수의 유형을 싶어. 이걸 어떻게해야합니까?
해결법
-
==============================
1.그래서, 엄격하게 말하면, "변수의 타입은"항상 존재하고, 유형 매개 변수로 주위에 전달 될 수 있습니다. 예를 들면 :
그래서, 엄격하게 말하면, "변수의 타입은"항상 존재하고, 유형 매개 변수로 주위에 전달 될 수 있습니다. 예를 들면 :
val x = 5 def f[T](v: T) = v f(x) // T is Int, the type of x
그러나 당신이 원하는에 따라서해야 할 일
-
==============================
2.나는 질문이 불완전하다고 생각합니다. 당신은 당신이 다음 아래에 몇 typeclass의 형식 정보를 가져하고자하는 것을 의미하는 경우 :
나는 질문이 불완전하다고 생각합니다. 당신은 당신이 다음 아래에 몇 typeclass의 형식 정보를 가져하고자하는 것을 의미하는 경우 :
그런 다음 지정한대로 인쇄 할 경우 :
scala> def manOf[T: Manifest](t: T): Manifest[T] = manifest[T] manOf: [T](t: T)(implicit evidence$1: Manifest[T])Manifest[T] scala> val x = List(1,2,3) x: List[Int] = List(1, 2, 3) scala> println(manOf(x)) scala.collection.immutable.List[Int]
당신은 다음 REPL 모드 인 경우
scala> :type List(1,2,3) List[Int]
또는 당신은 단지 @monkjack의 설명에 다음 클래스 유형이 "문자열".getClass이 목적을 해결할 수있는 무엇을 알고 싶은 경우
-
==============================
3.변수의 종류에 따라 당신은 객체의 런타임 클래스를 의미하는 경우 변수 포인트는, 당신은 모든 객체가 가지고있는 클래스 참조를 통해이를 얻을 수 있습니다 할 수있다.
변수의 종류에 따라 당신은 객체의 런타임 클래스를 의미하는 경우 변수 포인트는, 당신은 모든 객체가 가지고있는 클래스 참조를 통해이를 얻을 수 있습니다 할 수있다.
val name = "sam"; name: java.lang.String = sam name.getClass res0: java.lang.Class[_] = class java.lang.String
당신은 그러나 변수로 선언 된 유형을 의미하는 경우에, 당신은 그것을 얻을 수 없습니다. 예, 당신이 말한다면
val name: Object = "sam"
당신은 여전히 다시 위의 코드에서 문자열을 얻을 것이다.
-
==============================
4.나는 그것을 테스트 한 일
나는 그것을 테스트 한 일
val x = 9 def printType[T](x:T) :Unit = {println(x.getClass.toString())}
from https://stackoverflow.com/questions/19386964/i-want-to-get-the-type-of-a-variable-at-runtime by cc-by-sa and MIT license
'SCALA' 카테고리의 다른 글
[SCALA] 전용 [이] 전용 VS (0) | 2019.11.04 |
---|---|
[SCALA] 스칼라에서 무두질의 두 가지 방법; 각 유스 케이스는 무엇인가? (0) | 2019.11.04 |
[SCALA] 어떻게 동적 작업을 입력 기능과 사용 방법에? (0) | 2019.11.04 |
[SCALA] (왼쪽 / 오른쪽) 배, 줄이거 나 스캔? (0) | 2019.11.04 |
[SCALA] MatchError 스파크 2.0 벡터 열에 액세스 할 때 (0) | 2019.11.04 |