問題タブ [kapt]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
2 に答える
2181 参照

kotlin - Android Databinding と Kotlin を使用してカスタム BindingAdapter でラムダを使用する

Kotlin を使用して、Android Databinding のラムダ ハンドラーを使用してカスタム バインディングを作成しようとしています。ViewModel ハンドラーが明示的に Void を返している限り、うまく機能しています。しかし、代わりに Kotlin Unit が返された場合は、error: cannot generate view binders java.lang.StackOverflowError.

他のすべてのカスタム バインディングが機能するため、すべてが正しく接続されているようです (onClickVoid を呼び出している限り、convertBooleanToViewVisibility、toTestString、さらには customOnClick [以下の例を参照])。

問題は、Void を返す代わりに app:customOnClick で Unit を返すラムダを呼び出そうとしているときです。mainViewModel.onClick()以下の例では、 の代わりに呼び出すことですmainViewModel.onClickVoid()Unitandroid:onClick がバージョンを呼び出すことができるため、それを機能させる方法が必要です。しかし、onClick を呼び出す customOnClick に同じ構文を使用している場合、次のエラーが発生します。

明示的に Void を返すように ViewModel を変更する必要がないように、Unit で動作させる方法はありますか? 私のすべてのハンドラーの?

サンプルプロジェクト

プロジェクト build.gradle

モジュール (アプリ) build.gradle

MainActivity.kt

MainViewModel.kt

Bindings.kt

activity_main.xml

0 投票する
1 に答える
1323 参照

java - kotlin アノテーション プロセッサの null 許容型

私は Kotlin の注釈プロセッサに取り組んでおり、処理された要素は Java にあるため、?代わりに@Nullable注釈を使用して nullables を受け取ることはありません。それで問題ありませんが、型や高次関数で null パラメータを受け取るという問題に直面しています。 、通常のパラメーターの場合。

私はその注釈java.lang.Stringでプロセスで受け取ります。@org.jetbrains.annotations.Nullable

しかしList<String?>、たとえばjava.util.List<java.lang.String>、タイプ引数ではなくメイン要素にない注釈なしで私を返します。これにより、不明な null 許容状態が発生します。

javax.lang.model.util.Typesある種の結果を見つけるために使用しようとしましたが、何も見つかりませんでした。

私が現在使用しているコードの一部:

すべての助けをいただければ幸いです。