Как получить доступ к статическому методу Java из Scala с учетом псевдонима типа для этого класса, в котором он находится

Учитывая тип-псевдоним type Cal = java.util.Calendar, как можно получить доступ к методу static getInstance? Я попробовал следующее в Scala REPL:

scala> type Cal = java.util.Calendar
defined type alias Cal
scala> Cal.getInstance
<console>:8: error: not found: value Cal
          Cal.getInstance
          ^
scala> val Cal = java.util.Calendar
<console>:7: error: object Calendar is not a value
   val Cal = java.util.Calendar
                       ^

Является ли import java.util.{Calendar => Cal}, а затем import Cal._ действительно лучшим выбором?

Ответ 1

Вы не можете.

Да, import java.util.{Calendar => Cal} действительно лучший выбор.

Концептуально, члены Scala object похожи на статические члены классов Java. Это может означать, что следующее будет работать, но это не так, поскольку на Java-классах нет объектов singleton.

scala> val Cal = java.util.Calendar
<console>:13: error: object Calendar is not a value
       val Cal = java.util.Calendar
                           ^