[SCALA] 어떻게 스칼라 변수를 캐스팅 하는가?
SCALA어떻게 스칼라 변수를 캐스팅 하는가?
형 그래픽의 변수 감안할 때, 어떻게 스칼라에서의 Graphics2D에 캐스팅합니까?
해결법
-
==============================
1.바람직한 기술은 패턴 매칭을 사용하는 것이다. 이 문제의 값이 지정된 유형이 아닌 것을 당신이 정상적으로 사건을 처리 할 수 있습니다 :
바람직한 기술은 패턴 매칭을 사용하는 것이다. 이 문제의 값이 지정된 유형이 아닌 것을 당신이 정상적으로 사건을 처리 할 수 있습니다 :
g match { case g2: Graphics2D => g2 case _ => throw new ClassCastException }
이 블록은 asInstanceOf [Graphics2D를]에있어서의 의미를 복제하지만 더 큰 유연성. 예를 들어, 당신은 효과적으로 동시에 여러 조건 캐스트를 수행하는 여러 유형에 대해 서로 다른 가지를 제공 할 수있다. 마지막으로, 당신이 정말로 캐치 - 모든 지역에서 예외를 throw 할 필요가 없습니다, 당신은 또한 (바람직하게 또는 없음) 널 (null)을 반환 할 수, 또는 당신의 Graphics2D없이 작동 일부 대체 분기를 입력 할 수 있습니다.
즉,이 정말 길을 가야하는 것입니다. 그것은 좀 더 구문 asInstanceOf에 비해 부피가 큰, 그러나 유연성은 거의 항상 가치가있다.
-
==============================
2.
g.asInstanceOf[Graphics2D];
from https://stackoverflow.com/questions/931463/how-do-i-cast-a-variable-in-scala by cc-by-sa and MIT license
'SCALA' 카테고리의 다른 글
[SCALA] 왜 스칼라 목록 당 모두 여러 매개 변수 목록과 여러 매개 변수를 제공합니까? [복제] (0) | 2019.11.10 |
---|---|
[SCALA] 스칼라에서 널 / 아무것도 / 장치의 용도 (0) | 2019.11.10 |
[SCALA] 스칼라 : 어떻게 동적 객체와 반사를 사용하여 메서드 Invoke를 인스턴스화합니까? (0) | 2019.11.10 |
[SCALA] 어떻게 스파크 2.0에서 단위 테스트를 작성하는? (0) | 2019.11.10 |
[SCALA] 어떻게 경우 클래스의 인스턴스를 복제하고 스칼라에 하나의 필드를 변경하려면? (0) | 2019.11.10 |