次のことを考慮してください。
public interface ITree<X>
{
...
ITree<X> Union(ITree<X> other);
...
}
アイデアは、いくつかのタイプのツリーを実装することです。ただし、この方法は、同じタイプUnion()の2つのツリーを結合しようとした場合にのみ機能します。ただし、上記の型アノテーションはこの制限を強制しません。
だから、私の質問は次のとおりです。引数がと同じ型でなければならないUnion()ような型署名をどのように書くことができますか?otherthis
(明らかに、動的ランタイムテストを実行し、型が一致しない場合は例外をスローすることができます。しかし、実行できる場合は、コンパイル時にこれをチェックすることをお勧めします...)