Java泛型与无界通配符?

Java泛型与无界通配符?,第1张

Java泛型与无界通配符

您面临的问题称为通配符捕获。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);


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/zaji/5565477.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-12-14
下一篇2022-12-14

发表评论

登录后才能评论

评论列表(0条)

    保存