在 kotlin 中访问父 java class 的(静态 class)成员
access (static class) member of parent java class in kotlin
我有一个 java class A
有一个静态 class 作为成员:
class A {
...
static class B {...}
}
我在 java 中看到代码只是执行 A.B
来访问 class B。但是,我不能在我的 kotlin class 中做同样的事情:
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 clean compile
并得到了这个错误:Cannot access 'B': it is public/*package*/ in 'A'
。
我的问题:如何在我的 kotlin class 中访问 B
?
如果 C 必须导入 class A 则它与 A 和 B 不在同一个包中。
如果是这样,C 应该如何看到 class B 不是 public 但包级别可见。它在 Java 中也不起作用。
(在 Kotlin 中没有包级可见性修饰符,一个人可能会使用 "internal" 但那不一样。那些人会看到彼此)
我有一个 java class A
有一个静态 class 作为成员:
class A {
...
static class B {...}
}
我在 java 中看到代码只是执行 A.B
来访问 class B。但是,我不能在我的 kotlin class 中做同样的事情:
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 clean compile
并得到了这个错误:Cannot access 'B': it is public/*package*/ in 'A'
。
我的问题:如何在我的 kotlin class 中访问 B
?
如果 C 必须导入 class A 则它与 A 和 B 不在同一个包中。 如果是这样,C 应该如何看到 class B 不是 public 但包级别可见。它在 Java 中也不起作用。 (在 Kotlin 中没有包级可见性修饰符,一个人可能会使用 "internal" 但那不一样。那些人会看到彼此)