我有一个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) { ...}
...
}
}
(B
执行时,intellij将A.B
标记为红色。
我的用例:我有一个要投射到B
的对象,例如o is A.B
。
我做了mvn clean compile
,并收到以下错误消息:Cannot access 'B': it is public/*package*/ in 'A'
。
我的问题:我如何在kotlin课堂中访问B
?
答案 0 :(得分:1)
如果C必须导入类A,则它与A和B不在同一个程序包中。 如果是这样,C应该如何看待B类,该类不是公共的,但包级别可见。它在Java中也不起作用。 (在Kotlin中,没有包装级别的可见性修改器,可能会采用“内部”,但这并不相同。那些会互相看到)