亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如何將參數“t”替換為“className”?

如何將參數“t”替換為“className”?

慕森王 2022-05-12 17:10:57
Android Studio 3.2.1Kotlin plugin version 1.3.11-release-Studio3.2-1ext.kotlin_version = '1.3.11' RxJava 1.3.0 例如,當我輸入*.ktfile:Observable.unsafeCreate{}然后按Ctrl+Spacebetween{}時,IntellijIdea 建議我輸入 symbol t ->,但是當我在.java文件中執行相同操作時,結果是subscriber ->:*.kt 文件:fun anyFunc(): Observable<Boolean>{    return Observable.unsafeCreate { t -> t }}*.java 文件:public void anyFunc() {    Observable.unsafeCreate(subscriber -> {});}如何在 Kotlin 文件中進行與 Java 文件中相同的建議輸入行為?[更新] 似乎是因為call()方法 in rx.functions.Func1,它有參數t:public interface Func1<T, R> extends Function {     R call(T t); }
查看完整描述

1 回答

?
開滿天機

TA貢獻1786條經驗 獲得超13個贊

我正在使用

安卓工作室 3.2.1 ,

rxjava:2.2.0 ,

Kotlin 插件版本 1.3.11-release-Studio3.2-1

在輸入*.ktfile:并在Android Studio之間Observable.unsafeCreate{}Ctrl+Space后,我會看到下一個建議:{}

http://img1.sycdn.imooc.com//627ccf5000017a4f19170527.jpg

當我輸入*.java文件時,Android Studio 會顯示相同的建議。

我沒有在 Android Studio Preferences 中進行任何配置更改。

我猜你是從下圖完成列表中的第一項導入Observablerx。嘗試Observableio.reactivex以下完成列表中突出顯示的項目導入,它可能會有所幫助:import io.reactivex.Observable.

http://img1.sycdn.imooc.com//627ccf5c0001c63912000522.jpg

要使用它,您需要導入 rxjava2:


implementation 'io.reactivex.rxjava2:rxjava:2.2.0'

編輯:


正如所發現的那樣,代碼完成對話框顯示t ->是因為Action1.call(T t)調用了參數t。如果我們查看RxJava 1.3rx.Observable.unsafeCreate中方法的簽名,我們可以看到它:


public static <T> Observable<T> unsafeCreate(OnSubscribe<T> f) {

    return new Observable<T>(RxJavaHooks.onCreate(f));

}

OnSubscribe接口擴展Action1<Subscriber<? super T>,并Action1具有下一個簽名:


public interface Action1<T> extends Action {

    void call(T t);

}

因此調用了參數t,Android Studio 將其建議為t ->.


在RxJava2 中,我們有不同的簽名:


public static <T> Observable<T> unsafeCreate(ObservableSource<T> onSubscribe) {...}


public interface ObservableSource<T> {

    void subscribe(@NonNull Observer<? super T> observer);

}

我們看到 inObservableSource.subscribe()方法中的參數被調用observer了,所以我們把它看成observer->.


結論:IDEA 的建議是基于您作為 lambda 實現的功能接口方法的參數名稱。


查看完整回答
反對 回復 2022-05-12
  • 1 回答
  • 0 關注
  • 129 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號