Скажем, у нас есть следующая структура класса в Scala.
object Foo {
class Bar
}
Мы можем легко построить Bar
в Java с помощью new Foo.Bar()
. Но все меняется, когда мы добавляем дополнительный уровень вложенных классов.
object Foo {
object Bar {
class Baz
}
}
Как-то больше невозможно построить самый внутренний класс Baz
в Java. Глядя на вывод javap
, я не вижу существенной разницы между первым (2 уровня) и вторым случаем (3 уровня). Сгенерированный код выглядит довольно разумным для меня.
2 уровня:
public class Foo$Bar { ... }
3 уровня
public class Foo$Bar$Baz { ... }
С учетом сказанного, какая разница между 2-уровневыми и 3-уровневыми вложенными классами Scala при доступе к ним из Java?