Как получить доступ к статическому методу 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
^