問題タブ [kotlin]
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.
intellij-idea - Kotlin で JavaFX プロジェクトの jar を生成する
Kotlin をいじっていたときに、Kotlin で書かれた JavaFX アプリ用の jar を生成できるかどうか疑問に思いました。そこで、簡単なアプリを作成し、IntelliJ IDEA で動作しましたが、jar を生成することにしたとき、動作しませんでした! メインクラスが見つからない、またはロードできないと表示されます。
問題は、プロジェクト設定でメイン クラスを要求されたときに、アプリケーション クラス名を入力したことだと思います (パッケージ レベルである必要があるため、メイン メソッドは含まれていません)。純粋な Java では、 main メソッドをアプリケーション クラス内に配置すると、完全に機能します。では、どうすればこれを回避できますか?
EDIT:ターゲットをJavaFXアプリケーションから通常のJarに変更しようとしたところ、うまくいきました。JavaFX アプリケーション ターゲットで動作しない理由がわかりません。
android - kotlin android プロガードエラー
apk をビルドしてプロガードしようとしていますが、次のようなメッセージで失敗します。
proguard.cfg に -dontwarn on kotlin.dom.** を追加しましたが、役に立ちません。
spring - kotlin の数値はシリアライズできません
kotlin の数値はシリアライズできないことがわかりました。
- 最初の問題
Device.kt:
DeviceRestRepository.kt:
kotlin.LongはSerializableではないため、このコードをコンパイルしようとするとエラーが発生します。
エラー:(14、72) Kotlin:型引数がその境界内にありません:「java.io.Serializable?」のサブタイプにする必要があります
- 第二の問題
java.lang.Longを使用しようとすると、同じエラーが発生します。
DeviceRestRepository.kt:
警告:(14, 72) Kotlin: このクラスは Kotlin では使用しないでください。代わりに kotlin.Long を使用してください。
エラー:(14、72) Kotlin:型引数がその境界内にありません:「java.io.Serializable?」のサブタイプにする必要があります
kotlin - Kotlin で null 許容または空のリストを処理する慣用的な方法
activities
typeの変数があるとしますList<Any>?
。リストが null でも空でもない場合は、何かを行いたいと考えています。それ以外の場合は、別のことを行いたいと考えています。私は次の解決策を思いつきました:
Kotlinでこれを行うためのより慣用的な方法はありますか?
dependency-injection - Dagger で Kotlin を使用する
Dagger を使用して依存関係をクラス、特にアクティビティなどの引数のないコンストラクター クラスに注入するための最良の方法は何ですか? Dagger 2 は状況を改善する可能性がありますか?
前もって感謝します。
inheritance - Kotlin でデータ クラスを拡張する
データ クラスは、Java の旧式の POJO に取って代わるようです。これらのクラスで継承が可能になることは十分に予想できますが、データ クラスを拡張する便利な方法は見当たりません。私が必要とするのは次のようなものです:
上記のコードは、component1()
メソッドの衝突のために失敗します。クラスの1つだけに注釈を残しdata
ても、うまくいきません。
おそらく、データ クラスを拡張するための別のイディオムがあるでしょうか?
UPD:子の子クラスのみに注釈を付ける場合がありますが、data
注釈はコンストラクターで宣言されたプロパティのみを処理します。つまり、すべての親のプロパティを宣言してopen
オーバーライドする必要があり、これは醜いです: