可以在Kotlin中调用Java静态方法

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了可以在Kotlin中调用Java静态方法相关的知识,希望对你有一定的参考价值。

假设我们有一个Java静态方法:

//Java code
public static void printFoo() {
    System.out.println("foo");
}

可以在Kotlin中调用该方法吗?

答案

是的你可以。 Java代码:

public class MyJavaClass {
    public static void printFoo() {
        System.out.println("foo");
    }
}

Kotlin代码:

fun main(args: Array<String>) {
    MyJavaClass.printFoo()
}

这么容易=)

另一答案

是。它在Java Interop中有记录

http://kotlinlang.org/docs/reference/java-interop.html

文档显示以下示例

if (Character.isLetter(a)) {
 // ...
}

我看到的唯一警告是,它们不能与实例一起传递,并且像在Java中一样可以在类的实例上访问,但这通常被认为是不好的做法。

另一答案

0wl的答案通常是正确的。

我只是想补充说一些Java类被映射到特殊的Kotlin类。在这种情况下,您必须完全限定Java类才能使其正常工作。

例:

fun main(args: Array<String>) {
    println(java.lang.Long.toHexString(123))
}

以上是关于可以在Kotlin中调用Java静态方法的主要内容,如果未能解决你的问题,请参考以下文章

如何从片段 KOTLIN 中调用意图 [重复]

Kotlin的标准函数和静态方法

Kotlin 与 Java 相互调用

面向Kotlin与Java开发者的Dart快速入门静态变量枚举

如何在 kotlin 中使用非静态方法?

Kotlin - 静态 Java 方法的“运行”