Function<String, Integer> f1 = Integer::parseInt; Function<String, Integer> f2 = s -> Integer.parseInt(s);
f1和f2的行为完全相同,编译后的字节码也完全相同
f1使用方法引用可能避免创建额外的Lambda类,性能更优
f1不能处理异常,而f2可以在Lambda中添加异常处理
f1和f2的类型推断机制不同
C选项:感觉解析不对。 第一:parseInt抛出的是非受检异常,都不用处理,编译随便通过 第二:如果要处理这个非受检异常,方法引用确实不能处理,没地方写try-catch,而Lambda可以 在方法体中写try-catch处理,这么来看的话C就是对的 第三:如果是说最终调用能否处理异常的话,那么两个都可以写try-catch处理,因为apply没有异常声明,加上parseInt抛出的 是非受检,完全不会出错,
这道题你会答吗?花几分钟告诉大家答案吧!
扫描二维码,关注牛客网
下载牛客APP,随时随地刷题