我有一个 java 类 A
,它有一个静态类作为成员:
class A {
...
static class B {...}
}
我在 java 中看到代码只需执行 A.B
即可访问类 B。但是,我无法在 kotlin 类中执行相同的操作:
import org.mypackage.A
class C {
...
fun doSomething(o: Any) {
if (o is A.B) { ...}
...
}
}
(当我执行 A.B
时,intellij 将 B
标记为红色。
我的用例:我有一个想要转换为 B
的对象,例如 o is A.B
。
我执行了mvn cleancompile
并收到此错误:无法访问“B”:它是“A”中的public/*package*/
。
我的问题:如何在 kotlin 类中访问 B
?
最佳答案
如果 C 必须导入类 A,那么它与 A 和 B 不在同一个包中。 如果是这样的话,C 应该如何看待非公共(public)但包级别可见的类 B。它在 Java 中也不起作用。 (在 Kotlin 中,没有包级可见性修饰符,人们可能会采用“内部”,但这不一样。它们会互相看到)
关于java - 访问 kotlin 中父 java 类的(静态类)成员,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51528223/