またわら人形かよ

Javaにvariant型を実装した - *「ふっかつのじゅもんがちがいます。」withぬこ

はてぶで突っ込む人が少なすぎるので.コメント.

Java脳が進行するとvarを使うなんて思いもよらないわけだけど*1,それ以前にMapの使い方がおかしいと言うか狂ってる.そこをもっと突っ込むべきなんじゃないかな.

基本,JavaJava Scriptとは違うわけで,classとHashを同一視されたらかなわん.たいした手間じゃないんだから,最初の例だったら,

class EncodedString {
   final String tag;
   final String enc;
   // 以下適当にコンストラクタその他がくる
}

というクラスを作って,配列に突っ込めばいい.*2

それ以前にencode程度だったらその場で計算したほうがたいてい速いはず(Mapをわざわざ作るならシングルスレッドでも,専用クラスを作っても複数スレッドで共有するならたぶんこの手のキャッシュで得することはほとんどないと思う).もし時間がかかる処理でも,単に入力と出力を配列に突っ込んだものなんて使い道無いわけで,Hashにtag=>encな形で突っ込んだほうがいい.

二つ目の例も

同様に

class Person {
   final boolean sex;
   final int age;
   //以下適当にコンストラクタ
}

でいけるし,結局,このPersonを二乗することなんて無いわけで,全部一緒くたの配列に出来る意味がどれほどあるのか(元の例でいくと,int以外はvar#i()が0を返すので,全部0の配列が出来上がるだけのはず).

全部,文字列+配列+Hashで済まそうとする思想は「Perl4脳」だと思う.

*1:不安すぎて.Java脳の人と言うのは自分が一番信用できないはず

*2:finalでクラスをImmutableにしたほうが後々幸せになれるけど,コンストラクタをきちっと書く必要があるので善し悪し.あと,最近Rubyしか使ってないんでコンパイル通るか不安.