問題タブ [kotlin-extension]
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.
kotlin - Kotlin リスト末尾関数
テール関数を見つけようとしていますが、List<T>
見つかりませんでした。私はこれをやってしまった。
これを行うより良い方法はありますか?
enums - Kotlin: enum クラスを拡張関数で拡張する方法
次の関数を使用して型の列挙型クラスを拡張しようとしてString
いますが、次のように呼び出しサイトで使用できません。
ここで何が間違っていますか?
kotlin - toString を使用してデータ クラスを拡張する方法
データクラスを作成しました
toString
プログラムの後半では、メソッドを拡張しようとしたこのデータ クラスの文字列表現が必要です。
ここでの問題は、toString
トップレベルの関数には適用できないため、関数を拡張 (オーバーライド) できないことです。
カスタムデータクラスの toString メソッドを適切にオーバーライド/拡張する方法は?
kotlin - Kotlin:トランザクションクラスのコンテキストでサービスメソッドを実行する方法は?
サービスメソッドでデータベース呼び出しを定義したいのですがTransaction
、サービス自体で接続を開かずにクラスのコンテキストで実行して、同じトランザクションに複数のサービス呼び出しを含めることができるようにします。
このようなものを探していますが、よくわかりません。
これを行う方法はありますか?
次のように、トランザクション インスタンスをサービスに渡すことができることを知っています。
...しかし、よりエレガントなパターンを望んでいます。
kotlin - V1.0.1 で認識されない Kotlin 拡張プロパティ
1.0.1 より前のバージョンの Kotlin のコードを再確認すると、拡張プロパティが機能しなくなっているようです。実際、それはまだありますが、オーバーライドすることはできなくなりました。
このクラスを考えてみましょう:
Kotlin 1.0.1より前では、次の拡張機能がある場合、これは機能します。
loggerName は、デフォルトで問題のインスタンスのクラス名を取ります。現在、この場合、loggerName はTestClassに正しく割り当てられていますが、オーバーライドすることはできません。
これは偶発的なバグですか、それともこの新しいバージョンの Kotlin の新しい制限ですか? Kotlin - Extensionsを検索しましたが、動作するはずであることがわかりました。
テクニカル:
Kotlin プラグイン バージョン 1.0.1-release-IJ143-32 を使用して IntelliJ IDEA 2016.1 でこれをテストしています。
編集1:
TestClass はこのプロパティを認識しませんが、TestClass のインスタンス (例: instanceOfTestClass.loggerName
) にアクセスすると認識されます。
kotlin - Kotlin 拡張メソッドの整理方法
「MyClass」の拡張メソッドがいくつかあるとしましょう。私の質問は、これらのメソッドを整理/保存するためのベストプラクティスは何ですか? それらは単純に「MyClassExtensions」Kotlin ファイルに入れる必要がありますか?
これらのメソッドをクラス内にカプセル化しようとしましたが、クラスをインポートした後、拡張メソッドを使用/アクセスする方法がわかりませんでした。
編集:明確にするために、拡張メソッドを含むファイルを何と呼ぶかについての助けを求めていませんでした。そのような方法を保存/整理するためのベストプラクティス/アプローチについて尋ねていました。すなわち。単純に kotlin ファイルに入れるか、クラスにカプセル化するか。私は Java のバックグラウンドを持っているので、クラスに何かを格納するのに慣れています。
nullable - Kotlin-拡張機能とプラットフォームの種類?
ResultSet
として値を取得する2つの拡張関数を追加したいと思いLocalDate
ます。
問題はgetDate()
a を返すことです。明らかに、呼び出し前にDate!
null エラーが発生する可能性があります。ただし、この拡張機能を使用する人は、結果をではなくとして使用する必要があります。?.
toLocalDate()
LocalDate?
LocalDate!
一貫性のためにプラットフォームの種類を維持する方法はありますか? そして、拡張関数のユーザーに、null 許容を許可するかどうかを決定させますか? それとも、これを機能ではなく不便と見ているのでしょうか?
java - Kotlin を使用したメソッドで例外をスローします
このJavaコードをKotlinに変換しようとしています:
問題は、メソッドを実装すると、次のようなものが得られることです
Kotlin で例外をスローすることについて私が見つけた唯一の情報はTHISです。
疑問符を削除することは別として、必要ではないためIOException
、同じように処理しないのはなぜですか? この状況を処理する最善の方法は何ですか?