least upper bound
- class Integer extends Number implements Comparable
- class Long extends Number implements Comparable
これら2つのクラスの最小上限境界計算がうまくいかない。
何に使うかというと、
static <T> T t(T...t) { return null; }
というメソッドがあったときに
t(Integer.valueOf(1), Long.valueOf(2))
というメソッド起動の戻り値型を計算する時とか。
手計算すると [Number & Comparable< ? >] という共通型になるのが正解なんだろうけど、このComparable< ? >を出すのが厄介で、無限型が出現してしまうことに。
んー、無限型用のコンテキストを作るかどうするか…
一時的に無限の匂いを感じたら?で置換することにした。List