問題タブ [companion-object]

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 に答える
499 参照

scala - scala コンパニオン オブジェクトから Controller のメソッドを呼び出す

私のプロジェクトには、コンパニオン オブジェクトでそのメソッドを呼び出したいソケット メソッドを持つコントローラーがあります。これが私のコードサンプルです:

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

android - lateinit アプリ インスタンスが初期化されていないため、アプリがクラッシュする

Application インスタンスを保存して、databaseHelper のコンストラクターで使用しようとしていますが、アクティビティが databaseHelper をインスタンス化しようとすると、次の例外が発生します。

例外につながるコードは次のとおりです。

ForecastProvider には、次のコンパニオン オブジェクトがあります。

ForecastDb のコンストラクターは、次のように宣言された App.instance を参照する ForecastDbHelper のインスタンスを参照します。

データベースを参照するすべてのコードにコメントを付けると、アプリはデータ ソースとして ForecastServer を使用して動作しますが、データベースを参照しようとすると、つまりアプリ インスタンスを参照しようとすると、Kotlin は UninitializedPropertyAccessException をスローします。

私は何時間もコードを見てきましたが、何が間違っているのかわかりません。どんな助けでも祝福されます、事前に皆さんに感謝します.

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

scala - コンパニオン オブジェクトの apply メソッド内で New Keyword を使用する

scala でコンパニオン オブジェクトを使用するのに少し混乱しています。複数のコンストラクターを提供する場合は、通常、コンパニオン オブジェクトを宣言し、applyメソッドをオーバーロードします。しかし、この2つの方法の違いは何ですか?:

私が見たほとんどすべての例は、最初の形式を使用しています。

しかし、私のコードは両方の形式を使用して同じように動作するようです。キーワードの使用newは、通常のクラスがある場合にのみ意味がありますか? (ケースクラスではない)?

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

oop - Kotlin - クラスのinitブロックの前にコンパニオンオブジェクトを初期化することは可能ですか?

Kotlin クラスcompanion objectのブロックの前に初期化することは可能ですか? initもしそうなら、どのように?そうでない場合、同じことを達成する方法はありますか。

次のシナリオがあります。

呼び出すprintAllStaticsと、null ポインター例外が発生します。

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

scala - SPARK REPL でエラーが発生し (A への参照はあいまいです)、Intellij と Scala REPL で正常に動作しますか?

サンプルコードがあります:

このコードは Intellij で正常に動作します。そして私に出力を与えます:

しかし、 REPL でこれを実行しようとすると:

次のエラーが表示されます:

ここで何が欠けていますか? 詳しく教えていただけると助かります。

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

scala - 関数型プログラミングでカウンターを実装する方法

コンパニオン オブジェクトを理解しようとしているときに、クラスがインスタンス化された回数をカウントする次のコードを記述しました。カウントを維持するには、「var」を使用する必要がありました。同じタスクを達成するための「関数型プログラミング」の方法、つまり不変変数を使用する方法はありますか。

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

java - コンパニオンオブジェクトの暗黙的な関数をオーバーライドするには?

私は Scala と暗黙の変換が初めてです。

私は、制御できない既存の scala ライブラリを使用しています。ライブラリのクラス R を考えてみましょう。

クラス R を拡張して、その動作のほとんどすべてをオーバーライドしています。しかし、この新しいクラスは Java クラスです。これをAとしましょう。

問題は、私の制御フローのある時点で、制御が R の暗黙の宣言にジャンプし、最終的に任意の機能に RFunctions クラスを使用することです。

RFunctions に存在するメソッドは、拡張クラス A にも実装されています。暗黙的な変換をバイパスまたは回避する方法がわかりません。

どんなアイデアでも大歓迎です。

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

scala - Scala: コンパニオン オブジェクトで暗黙を使用する

scala でコンパニオン オブジェクトを作成し、インポートせずobjectに暗黙の関数を使用しようとしています。classしかし、コードをコンパイルしようとすると、エラーが発生しますtype mismatch;。暗黙的に自動的にインポートできないようです。以下は私のコードです:

クラスで使用import ImplicitTest5._している場合、コンパイルして正常に実行されます。Programming in Scala, Page: 478によると、問題なく動作し、インポートを定義する必要はありません。

この場合、変換DollarToEuroはタイプ Dollar に関連付けられていると言われています。コンパイラは、Dollar 型のインスタンスから変換する必要があるたびに、そのような関連付けられた変換を見つけます。変換をプログラムに個別にインポートする必要はありません。

私のサンプルで何か問題が発生していますか、それとも私の理解が誤解を招いていますか?

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

scala - 拡張クラスのコンパニオン オブジェクトの Scala Implicit Conversion

Java で customRDD を作成しようとしています。

RDDは、 で定義されているScala 暗黙関数を使用RDD[(K,V)]するように変換されます。PairRDDFunctions[K,V]rddToPairRDDFunctions()object RDD

私はCustomJavaRDDwhich extends CustomRDDwhich extends で同じことをしようとしていますRDD

rddToCustomJavaRDDFunctions()これで、に遭遇するたびに暗黙の関数を呼び出す必要がありますCustomJavaRDD[(K,V)]が、何らかの理由でrddToPairRDDFunctions().

私は何を間違っていますか?

RDD.scala

CustomRDD.scala

PairCustomJavaRDDFunctions.scala

エラーはありません。data: RDDプログラムは正常にコンパイルされますが、のインスタンスであるとしましょうCustomJavaRDD

実行時に;に変換dataされます。PairRDDFunctionsつまり、 RDD.scalarddToPairRDDFunctionsで定義されたへの暗黙的な呼び出しを行います。

ただし、 CustomRDD.scalarddToCustomJavaRDDFunctionsで定義されたを呼び出して、 に変換する必要があります。PairCustomJavaRDDFunctions

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

scala - Scala - 封印された抽象クラスを拡張するケース オブジェクトのリストを作成する

コンパニオン オブジェクトにケース オブジェクトのリストを作成しようとしています。オブジェクトはすべて、封印された抽象クラスから継承します。しかし、コンパイラは、リスト内の各項目に対して「見つかりません: 値 CompositeSpectrum」などと言っています。シールされたクラス オブジェクトとケース オブジェクトはすべて正常にコンパイルされます。コンパニオン オブジェクトで List を作成しようとすると、エラーが発生します。