小编典典

如何在 Scala 中转换变量?

all

给定一个 type 的变量Graphics,如何Graphics2D在 Scala 中将其转换为?


阅读 82

收藏
2022-07-04

共1个答案

小编典典

首选技术是使用模式匹配。这使您可以优雅地处理所讨论的值 不是 给定类型的情况:

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

该块复制了该asInstanceOf[Graphics2D]方法的语义,但具有更大的灵活性。例如,您可以为各种类型提供不同的分支,同时有效地执行多个条件转换。最后,你
真的 不需要在包罗万象的区域抛出异常,你也可以返回null(或者最好是,None),或者你可以输入一些没有Graphics2D.

简而言之,这确实是要走的路。它在语法上比 大一点asInstanceOf,但增加的灵活性几乎总是值得的。

2022-07-04