在Kotlin中调用Java静态方法的可能性

在Kotlin中调用Java静态方法的可能性,java,methods,static,kotlin,interop,Java,Methods,Static,Kotlin,Interop,假设我们有一个Java静态方法: //Java code public static void printFoo() { System.out.println("foo"); } 可以在Kotlin中调用该方法?Yes。它记录在Java互操作中 这些文档显示了以下示例 if (Character.isLetter(a)) { // ... } 我看到的唯一警告是,它们不能像Java中那样通过实例传递并在类的实例上访问,但这通常被认为是不好的做法。是的,可以。 Java代码: pu

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

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

可以在Kotlin中调用该方法?

Yes。它记录在Java互操作中

这些文档显示了以下示例

if (Character.isLetter(a)) {
 // ...
}
我看到的唯一警告是,它们不能像Java中那样通过实例传递并在类的实例上访问,但这通常被认为是不好的做法。

是的,可以。 Java代码:

public class MyJavaClass {
    public static void printFoo() {
        System.out.println("foo");
    }
}
科特林代码:

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

所以简单=)

0wl的答案通常是正确的

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

例如:

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

但是from instance不是吗?我们如何从Kotlin调用
android.nfc.Tag.createMockTag