目前用的是 jdk8 144 版本,写了如下一个方法
Map<String, Object> map = new HashMap<>();
map.put("a", new ArrayList<String>());
methodA((Collection) map.get("a")).stream()
.forEach(p -> System.out.println(p.getClass()));
methodA((Collection<String>) map.get("a")).stream()
.forEach(p -> System.out.println(p.getClass()));
如下为 methodA
List<String> l = new ArrayList<>();
l.add("a");
l.add("b");
return l;
两端输出都是 String 类型, 然而推断类型的时候,第一个调用的参数 p 为 Object,第二个为 String。。。
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.