복붙노트

[SCALA] 어떻게 스칼라 변수를 캐스팅 하는가?

SCALA

어떻게 스칼라 변수를 캐스팅 하는가?

형 그래픽의 변수 감안할 때, 어떻게 스칼라에서의 Graphics2D에 캐스팅합니까?

해결법

  1. ==============================

    1.바람직한 기술은 패턴 매칭을 사용하는 것이다. 이 문제의 값이 지정된 유형이 아닌 것을 당신이 정상적으로 사건을 처리 할 수 ​​있습니다 :

    바람직한 기술은 패턴 매칭을 사용하는 것이다. 이 문제의 값이 지정된 유형이 아닌 것을 당신이 정상적으로 사건을 처리 할 수 ​​있습니다 :

    g match {
      case g2: Graphics2D => g2
      case _ => throw new ClassCastException
    }
    

    이 블록은 asInstanceOf [Graphics2D를]에있어서의 의미를 복제하지만 더 큰 유연성. 예를 들어, 당신은 효과적으로 동시에 여러 조건 캐스트를 수행하는 여러 유형에 대해 서로 다른 가지를 제공 할 수있다. 마지막으로, 당신이 정말로 캐치 - 모든 지역에서 예외를 throw 할 필요가 없습니다, 당신은 또한 (바람직하게 또는 없음) 널 (null)을 반환 할 수, 또는 당신의 Graphics2D없이 작동 일부 대체 분기를 입력 할 수 있습니다.

    즉,이 정말 길을 가야하는 것입니다. 그것은 좀 더 구문 asInstanceOf에 비해 부피가 큰, 그러나 유연성은 거의 항상 가치가있다.

  2. ==============================

    2.

    g.asInstanceOf[Graphics2D];
    
  3. from https://stackoverflow.com/questions/931463/how-do-i-cast-a-variable-in-scala by cc-by-sa and MIT license