gpt4 book ai didi

java - 实现 Java 接口(interface) - Kotlin

转载 作者:塔克拉玛干 更新时间:2023-11-01 22:06:31 24 4
gpt4 key购买 nike

刚开始使用 Kotlin 并且我已经阅读了官方文档,我在使用 kotlin 库实现接口(interface)时遇到了问题。

这是 java 中的接口(interface):

public interface ResultCallBack {
void detailsRetrieved(Obj var1, AnotherInterface var2);

void anotherDataRetrieved(int var1, AnotherInterface var2);
}

我从 kotlin 调用的方法是这样的:

 public static void startLibActivity(Context context, ResultCallBack callback) {
sLuhnCallback = callback;
context.startActivity(new Intent(context, Library.class));
}

我如何从 kotlin 调用 startLibActivity 并实现 ResultCallBack

我想我坚持这个试验:

Library.startLibActivity(activity, {})

我在 {} 中尝试了很多可能性,但在正确实现方面仍然存在问题。

最佳答案

由于您的 java 接口(interface)不是 SAM Functional Interface ,因此您不能直接在 Kotlin 中使用 lambda 表达式 {}

您可以 implement a Java interface在 Kotlin 中,例如:

class KotlinResultCallBack : ResultCallBack {
override fun detailsRetrieved(var1: Obj?, var2: AnotherInterface?) = TODO()

override fun anotherDataRetrieved(var1: Int, var2: AnotherInterface?) = TODO()
}

然后你可以调用startLibActivity方法如下:

startLibActivity(context, KotlinResultCallBack())

您还可以使用 object expression创建一个实现 Java 接口(interface)的匿名类实例,例如:

startLibActivity(context, object : ResultCallBack {
override fun detailsRetrieved(var1: Obj?, var2: AnotherInterface?) = TODO()

override fun anotherDataRetrieved(var1: Int, var2: AnotherInterface?) = TODO()
})

关于java - 实现 Java 接口(interface) - Kotlin,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45016990/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com