Tag: 方法参考

RxKotlin使用方法引用collectInto()MutableList

以下代码是我尝试将RxJava示例转换为Kotlin。 它应该收集一串Int到MutableList ,但是我得到了大量的错误。 val all: Single<MutableList> = Observable .range(10, 20) .collectInto(::MutableList, MutableList::add) 错误: Error:(113, 36) Kotlin: Type inference failed: Not enough information to infer parameter T in inline fun MutableList(size: Int, init: (index: Int) -> T): MutableList Please specify it explicitly. Error:(113, 49) Kotlin: One type argument expected for interface MutableList : List, MutableCollection defined […]

使用函数引用重写Kotlin中的Java代码会发生SAMtypes冲突

我有一个示例Java代码使用方法引用,我想重写到Kotlin。 Java版本使用方法参考,解决方案简短明了。 但另一方面,我不能在Kotlin中使用方法引用。 我设法编写的唯一版本是下面介绍的一个。 看起来像Function3 { s: String, b: Boolean, i: Int -> combine(s, b, i) }可以用更简洁的方式编写(如果可能的话,方法引用将是完美的)。 我是Kotlin新手,所以我会感激任何线索。 Java的 import io.reactivex.Observable; public class TestJava { Observable strings() { return Observable.just(“test”); } Observable booleans() { return Observable.just(true); } Observable integers() { return Observable.just(1); } void test() { Observable.combineLatest(strings(), booleans(), integers(), this::combine); } double combine(String s, boolean […]

在Java方法中引用reflectionAPI的一部分

在Kotlin中,方法引用的结果放在包kotlin.reflect中。 Java中的方法引用也是reflection-api的一部分吗?

有没有可能在Kotlin中使用println作为函数引用

在Java 8和9中,可以将方法引用打印到控制台,例如: List.of(1, 2, 3).forEach(System.out::println); 在Kotlin中,我没有find使用方法引用打印到控制台的方法。 我试图翻译这个使用函数引用: listOf(1, 2, 3).forEach { println(it) } 至: listOf(1, 2, 3).forEach { ::println } 但是我得到这个错误: Overload resolution ambiguity. All these functions match. @InlineOnly public inline fun println(): Unit defined in kotlin.io @InlineOnly public inline fun println(message: Any?): Unit defined in kotlin.io @InlineOnly public inline fun println(message: Boolean): Unit defined […]

kotlin – 通过函数的方法引用

比方说,我有以下的Java类: public class A { public Result method1(Object o) {…} public Result method2(Object o) {…} … public Result methodN(Object o) {…} } 然后,在我的Kotlin代码中: fun myFunction(…) { val a: A = … val parameter = … val result = a.method1(parameter) // what if i want methodX? do more things with result } 我希望能够选择在myFunction内部调用哪个methodX。 在Java中,我会传递A::method7作为参数并调用它。 在Kotlin它不编译。 我应该如何解决在Kotlin?