将旧的 Java 代码转换为 kotlin 时出错。
为了帮助解决这个问题,我用示例代码编写了当前的问题。
abstract class AbClass {
open inner class Test {
}
}
继承 AbClass 的 ExClass
class ExClass : AbClass() {
private class T : AbClass.Test() {
//Error AbClass.Test() UnResolved reference: Test
}
}
為什麼我無法獲得 AbClass.Test ((?
当将 Java 代码转换为 Kotlin 时,情况变得如此。
AbClass 在 Java 中就是这样。当您使用关键字inner
时,这意味着inner
类可以引用outer
类。
public abstract class AbClass {
public class Test {
}
}
当扩展 AbClass 时,你声明类T
而不inner
关键字,这意味着 kotlin 会生成它以static class
。基本上,static class
不是指outer class
这可能是类T
和类Test
之间的冲突。所以最后,如果你使用关键字inner
它也应该在第T
类中声明。确保它声明相同
class ExClass : AbClass() {
private inner class T : AbClass.Test() {
}
}