
您面临的问题称为通配符捕获。Java无法识别将从
List<?>数据中接收的类型。尝试以两种方式中的任何一种重构代码
方法1:如下 更改您的界面
interface Converter { String asString(Object object);}方法2: 通过类型推断来捕获通配符的Helper方法
创建如下的帮助方法,
// Helper method created so that the wildcard can be captured// through type inference.private <T> void helper(List<T> data) { Map<Class<?>, Converter<T>> converterMap = null; List<String> stringData = null; for (T datum : data) { stringData.add(converterMap.get(datum.getClass()).asString(datum)); }}如下调用此辅助方法
List<?> data = fetchData();helper(data);
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)