首页   注册   登录
 beijiaxu 最近的时间轴更新

beijiaxu

V2EX 第 189438 号会员,加入于 2016-08-30 14:43:55 +08:00
今日活跃度排名 16777
beijiaxu 最近回复了
太强了。。
35 天前
回复了 jinhan13789991 创建的主题 问与答 台式机,如何优雅的添加无线网卡。
奥瑞金 usb wifi,华硕同款芯片要 4,500,自用感觉还行,nga 推荐帖子看到的
35 天前
回复了 beijiaxu 创建的主题 Java jdk8 lambda 表达式推断问题
@j2gg0s 谢谢
35 天前
回复了 beijiaxu 创建的主题 Java jdk8 lambda 表达式推断问题
@WangYanjie 我又重新写了下例子,感觉都误导到大家了。。。
37 天前
回复了 beijiaxu 创建的主题 Java jdk8 lambda 表达式推断问题
@WangYanjie 并不是期望输出 class type...这个 2 种调用输出都一样。
想问的是在 lambda 函数里参数 p 的编译时推导的类型,一个是 Object,一个是 String,所以参数 p 调用方法时若不指定 methodA 签名里的泛型,会需要用到强转,否则编译错误。给出的提示可用方法只有 Object 的方法,String 的方法一个都没有。
37 天前
回复了 beijiaxu 创建的主题 Java jdk8 lambda 表达式推断问题
因为今天正好碰到了这个问题,我偷懒没个方法签名加集合的泛型,导致 lambda 里推导出的参数调用方法编译错误,然后我加了给集合加了个<String>, 就能正常工作了,感觉好奇怪。
37 天前
回复了 beijiaxu 创建的主题 Java jdk8 lambda 表达式推断问题
可能大家都没太懂,我再写下。。
首先有个如下方法 methodA
List<String> methodA(Collection<String> c) {return ...}

然后调用该方法,使用 map 来获得变量
Map<String, Object> map = new HashMap<>();
map.put("a", new ArrayList<String>());

第一种方式:强转类型不加泛型类型
methodA( (Collection) map.get("a") )
.stream().forEach(p -> 这里的参数 p 推导类型为 Object )
第二种方式:强转类型有泛型类型
methodA( (Collection<String>) map.get("a") )
.stream().forEach(p -> 这里的参数 p 推导类型为 String )

我不明白的是,为什么方法签名的泛型会影响到 lambda 函数推导方法返回值的类型,我已经在方法返回值里指定了泛型类型了呀。
37 天前
回复了 beijiaxu 创建的主题 Java jdk8 lambda 表达式推断问题
@openthinks 不是什么期望输出,只是我在 lambda 函数里变量推导的类型可能是 Object,可能是具体的我要的类型。。
37 天前
回复了 beijiaxu 创建的主题 Java jdk8 lambda 表达式推断问题
@rizon methodA 返回的 List<String> 类型
同懵逼中度过,啥都不想做。
关于   ·   FAQ   ·   API   ·   我们的愿景   ·   广告投放   ·   感谢   ·   实用小工具   ·   3902 人在线   最高记录 4385   ·  
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.3 · 10ms · UTC 07:52 · PVG 15:52 · LAX 23:52 · JFK 02:52
♥ Do have faith in what you're doing.
沪ICP备16043287号-1