「わんくま同盟」の方のサイトにあったC#の例のような、 演算子ラッパーメソッドとか提供されるとうれしいな。 java7が以下のような感じの実装とか希望。 abstract class Operator extends Number { T add( T t){} // + T negate( T t){} // - T divide( T t){} // / T mulutipry( T t){} // * T modify(T t){} // % } class Integer extends Operator { ... } 上記のようなOperatorインタフェースを継承すると演算子で記述しても 以下のメソッドに展開し処理する仕組み希望。 コンパイラは以下のインタフェースを継承以外は演算子として解釈しない とか。 そしたらこんなファンクタ作れるかも? interface Function { R apply(T); } class Plus implements Function { R apply(T t) { return t + t; } } class Client { public void main(String[] args) { Loop.foreach(new Integer[] {1,2,3,4}, new Plus ()); Loop.foreach(new Double[] {1.1,2.2,3.3,4.4}, new Plus ()); } } jadでPlus.classファイル開くとこんなイメージ。 class Plus implements Function { Object apply(Object t) { return this.apply((Operator)t); } Operator apply(Operator t) { return t.add(t); } } だったらいいなあ。 大体、BigDecimalにある演算子のラッパーメソッドを他の プリミティブ型ラッパークラスに用意してくれれば、演算子オーバーロードはいらないのだけど。