Java Genericsが難しい(2)

1.ジェネリクスと四則演算

以下のような記述がしたかったのだけど、javaではできません。(コンパイルエラー)
C++Templateならこんな感じでもいけるはず。

class Plus<T extends Number,R extends Number>
    implements Function
<T,R> {
  R apply(T arg1, T arg2) {
    return arg1 + arg2;
  }
}


”このインタフェースを継承するとコンパイルのときboxing/unboxingが働くよ”
というマーカーインタフェースがない(Numberクラスはダメ)ので、ジェネリクス型で
記述した変数に対し演算子を用いて演算することはできない。
「ジェネリクスと四則演算」の組み合わせはC#(.net)でも利用できないようで、
「わんくま同盟」の方のblogにその辺の記事をみかけた。
でも演算子オーバーロードのあるC#(.net)は将来に希望を持てそうでうらやましい。
 
 

コメント

このブログの人気の投稿

日食ツアーその後

NashornがOpenJDKのリポジトリに入ってたのでビルドしてみた

Javaのクロージャをいじってみた。(1)