Javaで束縛(bind)とか
こんなんやったら絶対怒られるよな。
使ってる要素は、
Generics,匿名クラス,autoboxing
位だろうか?
やってみればわかるが、変数「map」が関数終了後もメモリに存在し、束縛される。
map の型と、インターフェースを弄れば、キャッシュ実装できるんじゃね?
import java.util.*; interface test { String get(int x); void set(int x,String val); } public class testcode { static test getTestCode() { final HashMap<Integer,String> map = new HashMap<Integer,String>(); return new test() { public String get(int x) { return map.get(x); } public void set(int x,String val) { map.put(x,val); } }; } public static void main(String ...args) { test sample = getTestCode(); test sample2 = getTestCode(); sample.set(24,"Fuyukaze"); sample2.set(24,"Hage"); System.out.println(sample.get(24)); } }