本文首发于个人网站:Java泛型的局限和使用经验
这篇文章主要总结泛型的一些局限和实际的使用经验
泛型导致的重载冲突
使用泛型接口时的冲突
2017-12-0920.31.09.png
@SuppressWarnings("unchecked")
屏蔽掉异常;//使用泛型类 @Data @Builder @AllArgsConstructor @NoArgsConstructor public class DataListPageInfo<T> { int page; int pageSize; int totalCount; List<T> items = new ArrayList<>(); }
@Component public class RedisTemplateService { private static final Logger LOGGER = LoggerFactory.getLogger(RedisTemplateService.class); @Resource private RedisTemplate redisTemplate; private String getKey(String key, Object... params) { if (params == null || params.length <= 0) { return key; } return String.format(key, params); } //这里使用了泛型方法 public <T> T getFromJsonCache(Class<T> type, String keyPrefix, Object... params) { try { String ret = getString(keyPrefix, params); return JSON.parseObject(ret, type); } catch (Exception e) { LOGGER.error("json parse error, type={},keyPrefix={},params={}", type, keyPrefix, params, e); } return null; } …… }