static HashMap, Class> loadFunctions_cache = new HashMap; static Class loadFunctions_cached(S... functions) { ret loadFunctions(asList(functions)); } static Class loadFunctions(L functions) { Set functionSet = new TreeSet(functions); synchronized(loadFunctions_cache) { Class c = loadFunctions_cache.get(functionSet); if (c == null) loadFunctions_cache.put(functionSet, c = loadFunctions(functionSet)); ret c; } }