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

问题描述 投票:3回答:3

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

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

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

java methods static kotlin interop
3个回答
9
投票

是的你可以。 Java代码:

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

Kotlin代码:

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

这么容易=)


1
投票

是。它在Java Interop中有记录

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

文档显示以下示例

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

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


1
投票

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

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

例:

fun main(args: Array<String>) {
    println(java.lang.Long.toHexString(123))
}
© www.soinside.com 2019 - 2024. All rights reserved.