Code example for ConcurrentHashMap

Methods: get

public class Lookup { 
    private final ConcurrentHashMap<Class,Object> data = new ConcurrentHashMap<Class,Object>();
    public <T> T get(Class<T> type) {
        return type.cast(data.get(type));
    public <T> T set(Class<T> type, T instance) {
        return type.cast(data.put(type,instance));
     * Overwrites the value only if the current value is null. 
     * @return 
     *      If the value was null, return the {@code instance} value. 
     *      Otherwise return the current value, which is non-null. 
    public <T> T setIfNull(Class<T> type, T instance) {