【发布时间】:2019-06-12 11:34:05
【问题描述】:
Android Studio 3.2.1
Kotlin plugin version 1.3.11-release-Studio3.2-1
ext.kotlin_version = '1.3.11'
RxJava 1.3.0
例如,当我输入 *.kt 文件:Observable.unsafeCreate{} 然后在 {} 之间按 Ctrl+Space 时,IntellijIdea 建议我输入符号 t ->,但是当我在 .java 文件中执行相同操作时结果是subscriber ->:
*.kt文件:
fun anyFunc(): Observable<Boolean>{
return Observable.unsafeCreate { t -> t }
}
*.java文件:
public void anyFunc() {
Observable.unsafeCreate(subscriber -> {});
}
如何在 Kotlin 文件中实现与 Java 文件中相同的建议输入行为?
[更新]
似乎是因为rx.functions.Func1中的call()方法,它有参数t:
public interface Func1<T, R> extends Function {
R call(T t);
}
【问题讨论】:
-
在 Java 中,您必须为 lambda 参数提供一个名称,而在 Kotlin 中,lambda 中的单个参数有一个隐式名称
it。你可以简单地说unsafeCreate { it } -
@s1m0nw1 我也知道
it。但我想要className。在快速查看代码后,这将更易于阅读和理解 -
你用的是什么版本的Android Studio,RxJava?
-
@NickUnuchek - 这是你的问题吗? developerfaqs.com/5967/how-to-replace-param-t-to-classnamedeveloperfaqs.com 上似乎有答案。
标签: java android-studio intellij-idea kotlin android-studio-3.0