type の変数が与えられた場合、ScalaGraphics
でそれをキャストするにはどうすればよいですか?Graphics2D
質問する
94394 次
2 に答える
284
推奨される手法は、パターンマッチングを使用することです。これにより、問題の値が指定されたタイプではない場合を適切に処理できます。
g match {
case g2: Graphics2D => g2
case _ => throw new ClassCastException
}
このブロックは、メソッドのセマンティクスを複製しasInstanceOf[Graphics2D]
ますが、柔軟性が高くなります。たとえば、さまざまなタイプに異なるブランチを提供して、同時に複数の条件付きキャストを効果的に実行できます。最後に、キャッチオール領域で例外をスローする必要はありません。null
戻る(またはできればNone
)か、。なしで機能するフォールバックブランチに入ることができますGraphics2D
。
要するに、これは本当に行く方法です。構文的には少しかさばりasInstanceOf
ますが、柔軟性を追加することはほとんどの場合価値があります。
于 2009-05-31T15:21:16.673 に答える
227
g.asInstanceOf[Graphics2D];
于 2009-05-31T06:26:51.823 に答える