やっぱり動的言語では安全なソフトは作れない 3
■ このスレッドは過去ログ倉庫に格納されています
0075デフォルトの名無しさん
2011/06/22(水) 19:13:38.60派生型がアリならこんなとこか
Scalaなら派生型ナシでもっと短く書けるし、静的言語ならどうという例には向いてないんじゃないかコレ
import java.util.*;
public class Test1 {
abstract class MapBase<K,V> extends HashMap<K,V> {
abstract V make();
V prepare(K k){
V v = get(k);
if( v== null ) put(k,v = make());
return v;
}
}
class M extends MapBase<String,List<String>>{
@Override List<String> make() { return new ArrayList<String>(); }
}
class MM extends MapBase<String,M>{
@Override M make() { return new M(); }
}
void foo(){
new MM().prepare("a").prepare("b").add("111");
}
}
■ このスレッドは過去ログ倉庫に格納されています