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

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

kotlin - Kotlin にコンストラクタ参照はありますか?

Java には、Class::newコンストラクタ参照の構文があります。メソッドの呼び出し可能な参照があることは知っていますが、コンストラクターはどうですか? 私にとって典型的なユースケースは工場です。

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

kotlin - Kotlin の外側のスコープ

Kotlinで「匿名内部クラス」を作成する際に、呼び出し元クラスのスコープにアクセスしたいと考えています。JavaのOuterScope.this構文に相当するものは何ですか? 例 :

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

kotlin - コンストラクターとスーパークラスの NPE

次のコードがあります。

階層は次のとおりです: CurrentPlayer -> class Player -> trait MovingEntity -> trait Entity。

特性「Entity」には、フィールド「val game: PewGame」があります。Player のコンストラクタは次のようになります。

Playerのコンストラクターで、kotlinでそれを呼び出すことができれば、私はこれを持っています:

問題は、'this.game' が null であるため、'this.game.getSpriteBatch()' が NPE をスローすることです。これをより良い方法で説明することはできないので、どんな助けも感謝します。より正確には、デバッガーを使用した後:

Player クラスでgameとの両方を確認できます。null ではありませんが、何らかの不可解な理由で null です。thisgamethis.game

助けてくれてありがとう!

編集: この問題は、CurrentPlayer をインスタンス化するときにのみ存在し、Player をインスタンス化するときには発生しないことを忘れていました。

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

java - Kotlin のラムダ式

次の Java クラスを検討してください。

Kotlin では、次のようにラムダ式を使用できます。

しかし、Kotlin で (同じインターフェースを使用して) 次のメソッドを定義すると:

次に、この呼び出し:

型の不一致エラーが発生します。なんで?

0 投票する
4 に答える
10773 参照

jackson - Kotlin で Jackson JsonSubTypes アノテーションを使用する方法

Jackson の @JsonSubTypes アノテーションを使用してポリモーフィズムを管理する Java コードを変換しようとしています。

動作するJavaコードは次のとおりです。

同等だと思うKotlinコードは次のとおりです。

しかし、3 つの「JsonSubTypes.Type」行のそれぞれで次のエラーが発生します。

何か案が?

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

kotlin - Kotlinオブジェクトの初期化中に一時変数を保存する方法は?

私は Kotlin を勉強していますが、その学習の一環として、有理数を表すクラスを設計したいと考えています。

  • クラスには、分子と分母の 2 つの不変整数フィールドが含まれている必要があります。
  • クラスには、有効な equals、hashCode、および toString の実装が含まれている必要があります。
  • クラスが初期化されるとき、分子と分母はそれらの GCD によって削除される必要があります (つまり、Ratio(1, 2) == Ratio(2, 4 /* or 4, 8 */) or Ratio(2, 4 /* or 4, 8 */).numerator == 1, .denominator == 2など)。
  • このクラスには、別の Ratio を取り、現在の比率と指定された比率の乗算結果を返す mul メソッドを含める必要があります。

そのタスクに適していると思われるデータ クラスを使用しようとしましたが、カスタム コンストラクターを定義できないという問題がありました (分子と分母の両方を GCD から削除する必要があります)。

考えられる解決策:

GCD が 1 回計算されるようにクラス コンストラクターを定義する最も簡単な方法は何ですか?

アップデート

OK、可能な解決策を見つけたようです:

しかし、それはそのデータ修飾子を役に立たなくします - この変更の後、Ratio クラスは自動生成された equals/hashCode/toString を持たなくなりました。

最新バージョンの Kotlin - 0.9.66 で検証済み

その動作を再現するプログラム:

出力:

Ratio が toString メソッドを自動生成しなくなったことは明らかです

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

android - Kotlin での Android の ContactsContract のクエリ

Kotlin で記述された Android アプリで ContactsContract をクエリしようとすると、少し問題が発生します。Android スタジオでは、ContactsContract.Contacts._ID などの未解決の参照からエラーが発生します。Kotlinでこれらをクエリする正しい方法を知っている人はいますか?

0 投票する
5 に答える
35654 参照

kotlin - Kotlin でリソースを試す

tryKotlin でJava with-resources コードに相当するものを書こうとしたとき、うまくいきませんでした。

次のさまざまなバリエーションを試しました。

しかし、どちらも機能しません。

代わりに何を使用すべきか知っている人はいますか? どうやらKotlinの文法にはそのような構造の定義がありませんが、何かが足りないのかもしれません。次のように、try ブロックの文法を定義します。

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

class - kotlinでジェネリッククラスの新しいインスタンスを作成する適切な方法は何ですか?

次の初期化を使用します。

しかし、それは間違っていてIllegalAccessExceptionjava.lang.Class.newInstance(Class.java:1208)

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

java - エラー: KObject にアクセスできません -- kotlin.jvm.internal.KObject のクラス ファイルが見つかりません

Kotlin を既存の Java アプリケーションと統合しようとしています。それをテストするために、簡単な kotlin ファイルと単体テスト (Java で) を作成します。単体テストの目的は、すべての構成が正しいことを確認することであり、実際に Java から kotlin クラスを呼び出すことができます。

これは、gradleを使用してビルドを実行しているときに、次のエラーが発生するときに少し行き詰まります。

クラスパスにkotlinランタイムがあり、適切な測定のためにkotlin-jdk-annotationsも追加しました。また、gradle で kotlin プラグインを構成しています。

Javaの代わりにkotlinが好きなので、レンガの壁に頭をぶつけています。ただし、この問題は私の計画を台無しにする可能性があります。

どんな助けでも大歓迎です!!!

アップデート:

Gradle ビルド スクリプト:

Java バージョン: 1.7.x Kotlin バージョン: 0.9.976 Gradle バージョン: 1.6