import org.slf4j.Logger; import org.slf4j.LoggerFactory; import java.util.Date; import java.util.HashMap; /** * doc. * * @author shalk * @since 2021 */ class MyCache { public Object get(String name, String key) { return new Object(); } } public class MyCacheWrapper { private static final Logger LOG = LoggerFactory.getLogger(MyCacheWrapper.class); public static <T> T get(MyCache cache, String name, String key) { try { return (T) cache.get(name, key); } catch (ClassCastException e) { LOG.warn("cast fail", e); return null; } } public static void main(String[] args) { MyCache cache = new MyCache(); final Object o = cache.get("aa", "bb"); if (o instanceof HashMap) { HashMap<String, Date> b = (HashMap<String, Date>) o; final Date aa = b.get("date1"); System.out.println("aa = " + aa); } HashMap<String, Date> b2 = MyCacheWrapper.get(cache, "aa", "bb"); final Date aa = b2.get("date1"); System.out.println("aa = " + aa); } }