От Ан Обзор языка программирования Scala, Second Edition:Java Статические члены класса и Scala совместимость
// Scala
object PrintOptions {
def main(args: Array[String]): Unit = {
System.out.println("Options selected:")
for (val arg <- args)
if (arg.startsWith("-"))
System.out.println(" " + arg.substring(1))
}
}
В приведенном выше примере, программа Scala вызывает методы
startsWith
иsubstring
изString
, который является классом, определенным в Java. Он также обращается к статическому полюout
класса JavaSystem
и вызывает его (перегруженный) методprintln
. Это возможно даже , хотя Scala не имеет понятия статических членов класса. Фактически, каждый класс Java показан в Scala как два объекта, класс , содержащий все динамические элементы и одноэлементный объект, содержащий все статические элементы .
Я понимаю перевод компаньона в Scala объекты в Java байт-код, но я не уверен, что именно делает это означает, жирный текст в верхний BLOCKQUOTE «рассматривается в Scala» для противоположного примера (из Java в Scala).
Означает ли это, что классы Java со статическими членами фактически преобразуются или просто интерпретируются как два объекта в Scala? Или оба моих предположения ошибочны?
Связано с вашим редактированием: И вопрос в том, что? ;) – Nicolas
Означает ли это, что классы Java со статическими членами фактически преобразуются или просто интерпретируются как две сущности в Scala? Или оба моих предположения ошибочны? :) – PrimosK
Вопрос остается тем же .. :) – PrimosK