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

beijiaxu

V2EX 第 189438 号会员,加入于 2016-08-30 14:43:55 +08:00
今日活跃度排名 11092
beijiaxu 最近回复了
24 天前
回复了 funlee 创建的主题 随想 如何过好这一生
每年总有那么几天要思考这个问题
太强了。。
158 天前
回复了 jinhan13789991 创建的主题 问与答 台式机,如何优雅的添加无线网卡。
奥瑞金 usb wifi,华硕同款芯片要 4,500,自用感觉还行,nga 推荐帖子看到的
158 天前
回复了 beijiaxu 创建的主题 Java jdk8 lambda 表达式推断问题
@j2gg0s 谢谢
159 天前
回复了 beijiaxu 创建的主题 Java jdk8 lambda 表达式推断问题
@WangYanjie 我又重新写了下例子,感觉都误导到大家了。。。
160 天前
回复了 beijiaxu 创建的主题 Java jdk8 lambda 表达式推断问题
@WangYanjie 并不是期望输出 class type...这个 2 种调用输出都一样。
想问的是在 lambda 函数里参数 p 的编译时推导的类型,一个是 Object,一个是 String,所以参数 p 调用方法时若不指定 methodA 签名里的泛型,会需要用到强转,否则编译错误。给出的提示可用方法只有 Object 的方法,String 的方法一个都没有。
160 天前
回复了 beijiaxu 创建的主题 Java jdk8 lambda 表达式推断问题
因为今天正好碰到了这个问题,我偷懒没个方法签名加集合的泛型,导致 lambda 里推导出的参数调用方法编译错误,然后我加了给集合加了个<String>, 就能正常工作了,感觉好奇怪。
160 天前
回复了 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 函数推导方法返回值的类型,我已经在方法返回值里指定了泛型类型了呀。
160 天前
回复了 beijiaxu 创建的主题 Java jdk8 lambda 表达式推断问题
@openthinks 不是什么期望输出,只是我在 lambda 函数里变量推导的类型可能是 Object,可能是具体的我要的类型。。
160 天前
回复了 beijiaxu 创建的主题 Java jdk8 lambda 表达式推断问题
@rizon methodA 返回的 List<String> 类型
关于   ·   FAQ   ·   API   ·   我们的愿景   ·   广告投放   ·   感谢   ·   实用小工具   ·   3767 人在线   最高记录 5043   ·   Select Language
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.3 · 13ms · UTC 09:50 · PVG 17:50 · LAX 02:50 · JFK 05:50
♥ Do have faith in what you're doing.
沪ICP备16043287号-1