相关疑难解决方法(0)

如何在Kotlin中为Java类添加静态方法

是否可以在java.lang.Math类中添加新的静态方法Kotlin?通常,由于Kotlin Extensions,Kotlin可以做到这一点.

我已经尝试在我调用的文件中执行以下操作Extensions.kt:

fun Math.Companion.clamp(value:Double,minValue:Double,maxValue:Double):Double
{
    return Math.max(Math.min(value,maxValue),minValue)
}
Run Code Online (Sandbox Code Playgroud)

Math.Companion无法解决......

kotlin kotlin-extension

38
推荐指数
3
解决办法
3759
查看次数

是否可以为Java类添加"静态"扩展函数?

例如,我有Java类(来自外部库):

class A {} // This is Java class
Run Code Online (Sandbox Code Playgroud)

我想添加写在Kotlin上的扩展函数,并将其命名为:

A.foo() // This is call of extension function `foo` from Kotlin code
Run Code Online (Sandbox Code Playgroud)

据我所知,目前在Kotlin中是不可能的,因为它仅支持伴随对象的KClass-es的 "静态"扩展功能.对?

似乎没有什么可以防止以后在Kotlin中实现这样的功能.对?

kotlin

13
推荐指数
1
解决办法
3020
查看次数

Java类上的静态扩展函数

是否可以添加类似于向伴随对象添加扩展函数的静态扩展函数.我试过了

public fun ByteBuffer.Companion.invoke(capacity: Int): ByteBuffer
Run Code Online (Sandbox Code Playgroud)

但它引起了未解决的引用:伴侣.我只假设这是因为Companion没有在java代码中定义.

kotlin

12
推荐指数
1
解决办法
1222
查看次数

如何在 Kotlin 中为 Array 的 Companion 对象编写扩展方法?

正如我们所知(在这个问题中提到,无数人写了相同的答案),我们可以为伴随对象使用扩展方法,使某些东西看起来像“静态扩展”。

但是当我尝试这个时kotlin.Array,我失败了:

operator fun <T> Array<T>.Companion.invoke() {
}
Run Code Online (Sandbox Code Playgroud)

上面的代码导致此错误:

图片

那么Arrays 有伴生对象吗?如果不是,我怎样才能为Arrays制作“静态扩展” ?

编辑:

inline operator fun <reified T> Array<T>.Companion.invoke() {
}
Run Code Online (Sandbox Code Playgroud)

这段代码也失败了。

kotlin

3
推荐指数
1
解决办法
591
查看次数

Kotlin 静态扩展函数 Android

我想为 Android 内置ConnectivityManager类创建一个扩展函数,以便我的项目中的任何类都可以静态使用它。我只使用 Kotlin。

fun ConnectivityManager.checkInternet(context: Context): Boolean {
        val manager = context.getSystemService(Context.CONNECTIVITY_SERVICE) as ConnectivityManager
        val connection = manager.activeNetworkInfo
        if (connection != null && connection.isConnectedOrConnecting) {
            return true
        }
        return false
    }
Run Code Online (Sandbox Code Playgroud)

我可以通过创建 的对象来访问此函数,ConnectivityManager但我想做的是静态使用它。有什么可能吗?

android kotlin

1
推荐指数
2
解决办法
2454
查看次数

标签 统计

kotlin ×5

android ×1

kotlin-extension ×1