あなたと,合体したい
class Human<Sex, ComplementarySex> { ComplementarySex spouse; void marryTo(ComplementarySex spouse) { this.spouse = spouse; } } class Man extends Human<Man, Woman> {} class Woman extends Human<Woman, Man> {}
なんだ,結局一緒じゃないか.
class MSM extends Human<MSM, MSM> {} class WSW extends Human<WSW, WSW> {}
なんてのもあるから仕方ないのかもしれないけどさ,
javaは型とインターフェイスの区別がないんだよなぁ
だから,型の演算がextendsしかないっていう.A→Bだけやん.
interface IntersectTuple<T1, T2> { T2 getComplementary(T1 v1); T1 getComplementary(T2 v2); } interface Male; interface Female; interface Sex extends IntersectTuple<Male, Female>;
うむむむむ…
クロスライセンス
ってことで,スパムアカウントではありません.
…とでも弁解しておけば誅殺されずに済むかな