默认情况下,文件中声明的所有Kotlin函数将被编译为同一包中类中的静态方法,并且其名称源自Kotlin源文件(首字母大写,扩展名 “ .kt” 替换为
“ Kt” 后缀) 。为扩展功能生成的方法将具有扩展功能接收器类型的附加第一个参数。
将其应用于原始问题,Java编译器将看到名称为 example.kt的 Kotlin源文件。 __
package com.test.extensionspublic fun MyModel.bar(): Int { }好像声明了以下Java类
package com.test.extensionsclass ExampleKt { public static int bar(MyModel receiver) { }}从Java的角度来看,扩展类什么也没有发生,因此您不能仅使用点语法来访问此类方法。但是它们仍然可以像普通的Java静态方法一样调用:
import com.test.extensions.ExampleKt;MyModel model = new MyModel();ExampleKt.bar(model);
静态导入可用于ExampleKt类:
import static com.test.extensions.ExampleKt.*;MyModel model = new MyModel();bar(model);



