問題タブ [scala-generics]
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.
scala - トレイト実装による Scala Generics -
メッセージング キュー コンシューマーを構築したいと考えています。現時点では、Kafka の実装は 1 つだけですが、後で他の実装も含めることができます。
ここで、NotificationConsumerRecords は、メッセージング キューから消費するレコードの抽象クラスです。
そしてそれを拡張するケースクラス。
また、consumeメソッドは NotificationConsumerRecords のすべてのサブタイプを受け入れることができる必要があります。そのため、consume[B <: NotificationConsumerRecords]があります。
さて、このトレイトを Kafka 用に拡張し、消費を実装しようとすると
または
どちらの場合もコンパイル時エラーが発生します。ここでの問題は、コンパイラがそれらを特定の型ではなくジェネリック型として取っていることだと私は理解していると思います。
しかし、この KafkaMessagingQueueConsumer が KafkaConsumerRecords のみを受け入れる必要があることをコンパイラに知らせるにはどうすればよいかわかりません。
scala - 基になる型を持つ型パラメーター - Scala
A
のサブクラスである型を持つ特性と、パラメーターと同じ型を持つAny
メソッドが呼び出されたとしましょう。nextState
この特性は、型メンバーとメソッドTetris
をオーバーライドするクラスによって拡張されます。A
nextState
という名前の別のクラスでReinLib
を作成GameEnvironment
し、パラメーターを受け取る関数も持っていますGameEnvironment#A
。
このコードをコンパイルすると、エラーが発生します
型の不一致 state.type (基になる型と...
私が収集したものから、これは、コンパイラーがどのタイプstate
を持つかわからないために発生します。しかし、私は自分の問題を解決する方法を見つけることができなかったので、どうすればこれを回避できるのだろうか.