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

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

scala - トレイト実装による Scala Generics -

メッセージング キュー コンシューマーを構築したいと考えています。現時点では、Kafka の実装は 1 つだけですが、後で他の実装も含めることができます。

ここで、NotificationConsumerRecords は、メッセージング キューから消費するレコードの抽象クラスです。

そしてそれを拡張するケースクラス。

また、consumeメソッドは NotificationConsumerRecords のすべてのサブタイプを受け入れることができる必要があります。そのため、consume[B <: NotificationConsumerRecords]があります。

さて、このトレイトを Kafka 用に拡張し、消費を実装しようとすると

または

どちらの場合もコンパイル時エラーが発生します。ここでの問題は、コンパイラがそれらを特定の型ではなくジェネリック型として取っていることだと私は理解していると思います。

しかし、この KafkaMessagingQueueConsumer が KafkaConsumerRecords のみを受け入れる必要があることをコンパイラに知らせるにはどうすればよいかわかりません。

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

scala - 基になる型を持つ型パラメーター - Scala

Aのサブクラスである型を持つ特性と、パラメーターと同じ型を持つAnyメソッドが呼び出されたとしましょう。nextState

この特性は、型メンバーとメソッドTetrisをオーバーライドするクラスによって拡張されます。AnextState

という名前の別のクラスでReinLibを作成GameEnvironmentし、パラメーターを受け取る関数も持っていますGameEnvironment#A

このコードをコンパイルすると、エラーが発生します

型の不一致 state.type (基になる型と...

私が収集したものから、これは、コンパイラーがどのタイプstateを持つかわからないために発生します。しかし、私は自分の問題を解決する方法を見つけることができなかったので、どうすればこれを回避できるのだろうか.