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 に答える