我遇到了 java interop 和 Kotlin 的问题我有一个包保护的 java 抽象类,AbstractTest
它被用作另一个类的成员,TestHolder
。当我创建抽象类的派生实例Test
并尝试在 kotlin 中使用它时,我得到:
java.lang.IllegalAccessError:试图从 KotlinTest 类访问类 test.AbtractTest
相同代码的 Java 版本似乎可以正常工作...
package test;
abstract class AbtractTest {
}
package test;
public class Test extends AbtractTest {
}
package test;
public class TestHolder {
private AbtractTest test;
public AbtractTest getTest() {
return test;
}
public void setTest(AbtractTest test) {
this.test = test;
}
}
public class JavaTest {
private TestHolder testHolder;
public JavaTest() {
testHolder = new TestHolder();
testHolder.setTest(new Test());
}
}
fun main(args: Array<String>) {
JavaTest()
KotlinTest()
}
class KotlinTest {
val testHolder: TestHolder
init {
testHolder = TestHolder()
testHolder.test= Test()
}
}