我的 Spring 组件实现了 java.util.function.Function。这背后的想法是强制使用带有小封装函数的函数式风格。
@Component
public class MyFunction implements Function<In, Out> {
public Out apply(In in) { .... }
}
// example usage
@RestController
public class MyApi {
private MyFunction f;
public void foo() {
someList.stream()
.map(f)
. // whatever
}
}
IntelliJ 2018.1 出现两个问题:
“查找用法”提供了查找基本方法用法的选项。如果我不小心点击了“是”,IntelliJ 会发现无数的用法并减慢速度,直到它几乎冻结。好吧,我绝对应该在这里选择“否”,但这仍然是一个小问题。
在带有“方法引用”(如 IntelliJ 建议)的 Stream(例如过滤器)中使用该函数甚至更成问题。使用“查找用法”并选择“否”将不会显示我正在寻找的“真实”用法。这使得很难在代码中导航。
这引出了我的问题:使用内置函数接口是一个好习惯还是我应该编写自己的函数而不将其声明为 FunctionalInterface?您是否将上述问题视为 IntelliJ 错误?有你知道的解决方法吗?
MM们
慕仙森
相关分类