問題タブ [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.

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

generics - リフレクション API を使用しない基本型の Kotlin 拡張ジェネリック関数

getLongメソッド、getBooleanおよびを持つ Java オブジェクトがありますgetString。最後のパラメータとして関数を持つ汎用拡張関数を作成しようとしました。getString基本的に、例外をスローする可能性のある try と catch と etc への呼び出しをラップします。<reified T>たとえば、呼び出し時に設定されているようgetIt<Long>() { // do something with it }に、リフレクション API が必要であることを発見しましたT。isチェックもisInstanceもできませんでした。何か案は?

以下whenは動作しません。

したがって、ブール値の問題は別として、 を使用して適切なタイプの get を呼び出す一般的な方法が必要でしたT。クラスパスに kaitlin リフレクション jar を追加する必要がありました。できれば避けたかった。

whenUPDATE1: withを使用した最初の回答と応答T::classは、実際には機能しません。アイデアをありがとう、それは私がもう一度見るのを助けました. 2番目は、私が望んでいたものよりも「言葉が多い」と感じたので、この解決策に行き着きました。

jsonObj.getIt<String>("error") { er = it }比べてみるとこんな感じjsonObj.getIt<String>("error", JSONObject::getString) { err = it }

UPDATE2:これは、少なくとも私にとっては、最終的にはより良いアプローチのように思われ、ジェネリックを使用して目標を達成する際の問題を回避します

使用:

0 投票する
3 に答える
3928 参照

kotlin - Kotlin - 最終クラスの拡張

finalString のようなクラスの拡張を作成することは可能ですか? Swiftと同様に、 extensionof内に追加のメソッドを追加することができfinal classます。

例として、パスワードの有効な長さをString教えてくれる拡張機能のメソッドを作成したいと思います。String

注 - この例は、 の使いやすさを理解するためのものextensionであり、実際のシナリオではありません。

0 投票する
3 に答える
7421 参照

android - ID の android studio プラグイン: 'kotlin-android-extensions'

私は gradle を使用しており、プロジェクトに kotlin を追加しようとしています。しかし、gradle に 'kotlin-android-extensions' プラグインを追加しようとすると、それが見つかりません。

0 投票する
3 に答える
779 参照

android - Kotlin : 拡張関数ファイルを作成する?plus

Kotlinでlib を開発していますが、この解決策が見つかりません。

ここに画像の説明を入力

この問題を解決するにはどうすればよいですか。拡張関数 File?.plus を作成すると言っています。Javaでは問題なく動作しますが、Kotlinではこのコードをどのように書くのですか?