私はJavaでGADTのようなものを持っている必要があります
interface Action<C, O> {
Collection<O> doAction(C<O> predicate)
}
だから私は簡単にクラスを宣言することができます
class Selector<T> {
...
}
次に、たとえばセレクターのインスタンスを受け入れるアクションの実装で使用します。また、述語を受け入れるアクションの実装もありますが、引数の型はコレクションの戻り値の型と一致する必要があります。
主なアイデアは、あるタイプを別のタイプに依存させることです。それは普通の古いJava 6で可能ですか?