4

我用kotlin写了一个扩展方法

package com.zhongan.zachat.extention

import android.content.Context
import android.widget.Toast

/**
 * Created by Carl on 2016/12/1.
 *
*
*/


fun Context.toastLong(msg:String) = Toast.makeText(this,msg,Toast.LENGTH_LONG).show()

fun Context.toastshort(msg:String) = Toast.makeText(this,msg,Toast.LENGTH_SHORT).show()

当我kotlin activity打电话时没问题toastLong("test")
但是在java actvity IDE中说找不到这个方法。

如何在 java 代码中调用 kotlin 扩展方法

4

1 回答 1

8

基于此页面

扩展实际上并不修改它们扩展的类。

需要注意的是,不能从对象类调用扩展,因为原来的类还是一样的。(所以 Context 没有神奇的额外功能,因此不能在 Java 中使用 Context.functionName 调用它)

您应该可以使用以下方法调用它:

com.zhongan.zachat.extention.<fileName>.toastLong(ctx,"string")

例如,如果文件名为 kotlinFile.kt:

com.zhongan.zachat.extention.KotlinFileKt.toastLong(ctx,"string")
于 2016-12-01T12:01:17.173 回答