我在Android上尝试Kotlin,androidstudio,把它和一些现有的Java代码混合在一起,我遇到了一个问题。
我在Kotlin中有一个基类,其中一个方法被标记为
internal
:
package com.example.kotlin.hellokotlin
open class KotlinBaseClass
{
internal fun doSomething()
{
println("Done something!")
}
}
然后创建一个扩展
KotlinBaseClass
package com.example.kotlin.hellokotlin
class KotlinDerivedClass : BaseClass()
{
fun doSomethingElse()
{
doSomething()
println("Done something else!")
}
}
这个编译和工作良好。
如果我现在创建一个Java类
KotlinBaseClass公司
相反,其功能与
KotlinDerivedClass
package com.example.kotlin.hellokotlin;
public class JavaDerivedClass extends KotlinBaseClass
{
public void doSomethingElse()
{
doSomething();
System.out.println("Done something else!");
}
}
我发现这个类不会编译,因为
doSomething()
无法解析。如果我移除
内部的
声明中的关键字
剂量测定法()
在里面
KotlinBaseClass公司
这是预期的行为吗?Java和Kotlin之间的互操作性存在一个已知问题?