Подтвердить что ты не робот

Как сделать переменную в Scala?

Учитывая переменную с типом Graphics, как мне передать ее в Graphics2D в Scala?

4b9b3361

Ответ 1

Предпочтительным методом является использование сопоставления шаблонов. Это позволяет вам изящно обрабатывать случай, когда указанное значение не относится к данному типу:

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

Этот блок реплицирует семантику метода asInstanceOf[Graphics2D], но с большей гибкостью. Например, вы можете предоставить разные ветки для разных типов, эффективно выполняя одновременно несколько условных отбросов. Наконец, вам действительно не нужно бросать исключение в область catch-all, вы также можете вернуть null (или предпочтительно None), или вы можете ввести некоторую резервную ветвь, которая работает без Graphics2D.

Короче говоря, это действительно путь. Это немного более синтаксически громоздко, чем asInstanceOf, но добавленная гибкость почти всегда стоит того.

Ответ 2

g.asInstanceOf[Graphics2D];