Tag: function接口

当Comparator有两个抽象方法时,它如何成为一个function界面?

在Java 8中,引入了@FunctionalInterface注释来表示任何具有一个抽象方法作为function接口的接口。 引入它的原因之一是指示用户(程序员),lambda表达式可以在function接口的上下文中使用。 Comparator接口使用@FunctionalInterface注释。 但是,两种方法都是抽象的。 int compare(T o1, T o2); 和 boolean equals(Object obj); 在FunctionalInterface的文档中,它被明确提到为 从概念上讲,function界面只有一种抽象方法。 这里的equals方法不被认为是抽象的吗?

java.util.function包中函数接口的参数和返回类型的摘要

我正在寻找一个参数表和java.util.function中所有接口的单个​​抽象方法(SAM)的返回类型。

如何使用参数列表通过方法重载方法,该参数列表包含完全相同类型但与其他类型参数化的参数

我有一个方法: public List convertBy(Function<String, List> flines, Function<List, String> join, Function<String, List> collectInts) { return collectInts.apply(join.apply(flines.apply((String) value))); }//first method public Integer convertBy(Function<List, String> join, Function<String, List> collectInts, Function<List, Integer> sum) { return sum.apply(collectInts.apply(join.apply((List) value))); }//second method 尽管它们的参数是用不同类型参数化的,但我不能重载第一种方法。 我可能会使用不同的接口,除了Function但不知道哪一个就足够了,因为我查看了它们的列表并且找不到一个https://docs.oracle.com/javase/8/ docs / api / java / util / function / package-summary.html 。 这些函数中的参数是: flines – 从给定路径( String )读取文件并返回该文件中的行列表( […]

为什么比较器声明等于?

Comparator接口有自己的equals()方法。 默认情况下,任何类都将通过Object类获得equals() 。 在接口中有什么需要equals()方法?

请使用类名解释Java 8方法参考实例方法

public interface MyFunc { boolean func(T v1, T v2); } public class HighTemp { private int hTemp; HighTemp(){ } public HighTemp(int ht) { this.hTemp = ht; } boolean sameTemp(HighTemp ht2){ return hTemp == ht2.hTemp; } boolean lessThanTemp(HighTemp ht2){ return hTemp < ht2.hTemp; } } class InstMethWithObjRef { static int counter(T[] vals, MyFunc f, T v){ […]

使用带参数的方法引用

我刚开始学习Java流并遇到了问题。 请看下面的例子。 这是Node类的一部分: private Map nodes; public Optional child(String name) { return Optional.ofNullable(nodes.get(name)); } private void findChildren(String name, List result) { child(name).ifPresent(result::add); nodes.values().stream() // .map(Node::findChildren(name, result)) // .forEach(Node::findChildren(name, result)) .forEach(node -> node.findChildren(name, result)); } 我的目的是使用流中每个节点上的名称和结果参数调用#findChildren。 我试图使用方法引用Node :: findChildren没有运气。 我很欣赏其他与->运算符的解决方案。 是否可以将方法引用与参数一起使用? 我喜欢流的想法,我只想让代码更具可读性。 实际上,我认为有一个类似的问题方法引用与我读过的参数 ,但无法弄清楚如何在我的代码中使用bind2方法。 这是唯一的解决方案吗?