Sha*_*him 9 java eclipse java-8
在eclipse中学习java8流.找到以下行为有一个Student对象列表,stuList.我有这样的表达方式.
stuList.stream().collect(Collectors.averagingDouble(p -> p.getMarks() ));
Run Code Online (Sandbox Code Playgroud)
如果我编写p -> p.
然后尝试使用eclipse进行内容辅助,则不会显示任何方法.但是,如果添加LHS,double d =
那么do content assist on会p -> p.
显示所有可用的方法.
我希望eclipse能够理解我正在研究一个学生对象,即使我没有提供LHS.对于第一种情况,如果我自己编写方法,代码编译很好.只有自动完成功能无效
有什么指针吗?为什么添加LHS允许eclipse推断类型?
使用eclipse:Mars ..
在这个位置完成需要p
知道的类型.只要代码在语法上是正确的,p
推断Student
为@Tunaki指出.但是,当你输入''时,很快就会.代码太破碎了,没有文字悬停p
.
(旁注:文本悬停和完成是由具有不同上下文信息的不同编译器调用计算的,因此它们不会总是看到完全相同的信息).
虽然对于人类读者而言,λ体可能看起来与推断其类型无关,但是在p
不知道例如λ是否与空白相容和/或价值相容的情况下,推断不能进行.p.
不是一个可以帮助回答这个问题的表达方式.
具有适当的目标类型是类型推断的重要输入,因此一般而言,添加LHS可以改善情况并不令人惊讶.但是,我没有现成的解释,为什么它会在这种情况下影响代码完成.
所有这些只能说明(在很高的层次上)Eclipse为什么会这样做.改进总是可能的,即使它涉及极端复杂性,因为对不完整代码的类型推断固有地做了 - 我们要求的不仅仅是更高阶的推断:推断几种可能的推论中的哪一种可能产生最可能的结果.
开源工具的好处是:您可以通过编写良好的错误报告甚至代码贡献来帮助其持续改进.看到@ the8472引用的错误报告已经有一段时间没有回复了,我只是放弃了评论,让它们回到了雷达上.用户应该在适当的时间间隔内对团队中的错误报告进行ping操作,社区需求与设置优先级相关.lambda机构内部的代码完成是团队议程中的热门话题.
归档时间: |
|
查看次数: |
2260 次 |
最近记录: |