Kotlin:在不可见类中声明的静态嵌套Java类的可见性
使用Java我的静态嵌套的Java类是可见的,但使用Kotlin它不是。 看我下面的例子。 有没有一个很好的理由,它是不允许的,或者是一个错误? 是否有任何解决方法,以便我可以从Kotlin扩展NestedStaticClass
?
我有一个包私有的java类包含静态嵌套类
package javapackage; class HiddenClass { public static class NestedStaticClass {} }
HiddenClass
由公共类扩展。
package javapackage; public class VisibleClass extends HiddenClass{}
从我的java类扩展VisibleClass
,我可以看到NestedStaticClass
(它编译)
package otherpackage; import javapackage.VisibleClass; public class JavaClass extends VisibleClass { public static class C4 extends NestedStaticClass {} public JavaClass() { new NestedStaticClass(); } }
但是从Kotlin这不起作用。 我得到编译错误:“未解析的引用NestedStaticClass”
package otherpackage import javapackage.VisibleClass class KotlinClass() : VisibleClass() { class C1() : NestedStaticClass() init { val v = NestedStaticClass() } }