给定一个 type 的变量Graphics
,如何Graphics2D
在 Scala 中将其转换为?
问问题
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 回答