functional-interface 相关问题

Java语言中的功能接口是指具有单个抽象方法的接口。 @FunctionalInterface是一个注释,它要求特定的接口声明符合此规范。 lambda表达式或方法引用的目标类型必须是功能接口。功能接口是Java 8功能集的一部分。

@Swift 的FunctionalProtocols?

我的问题 我正在寻找 Swift 中 Java @FunctionalInterface 的等价物。 Swift 被称为面向协议的编程语言,并以其语法糖而闻名。所以我希望...

回答 1 投票 0

根据流中的条件应用不同功能的正确方法[已关闭]

使用流实现此功能逻辑的正确方法是什么? 流式传输项目列表 检查条件 1 是否通过,如果通过,则将函数 1 应用于该项目。 检查条件 2 是否...

回答 1 投票 0

无法传递Consumer<>实例

我有一个类用于遍历目录树并对每个文件/目录执行操作。它看起来像这样: 类 DirWalker { 公共静态无效 walkDirs(路径起始路径,消费者 我有一个类用于遍历目录树并对每个文件/目录执行操作。看起来像这样: class DirWalker { public static void walkDirs(Path startingPath, Consumer<Path> vAction) {...} } 在另一堂课上我有以下内容: public static Consumer<Path> doVisit = p -> {...} 我尝试在我的 Java 代码中使用它,如下所示: DirWalker.walkDirs(/* a path */, MyClass::doVisit); 但是,我在这里收到错误消息“MyClass 没有定义适用于此处的 doVisit(Path)”。我可以将 doVisit 成员更改为方法并且它可以工作。 如果我在 walkDirs 调用中使用 lambda 内联,它会工作得很好。但是创建 Consumer 的实例并将其传递给 walkDirs 方法会失败。为什么会这样? 仅当 doVisit 是方法时,您才可以使用方法引用语法 (MyClass::doVisit)。正如您所声明的那样, doVisit 是一个字段,应该以 MyClass.doVisit 的形式访问 如果要使用方法引用语法,可以将其编写为满足 Consumer<Path> 接口的方法,而不是内联 lambda 表达式,如下所示 public static void doVisit(Path p) { ... } 您的 doVisit 是 Consumer 的实例。所以你不能使用方法引用。只需将引用传递给您的 walkDirs 方法即可。 import java.nio.file.Path; import java.util.function.Consumer; public class MyClass { public static Consumer<Path> doVisit = path -> {}; public static void main(String[] args) { DirWalker.walkDirs(Path.of("/tmp"), doVisit); // Static } public static class DirWalker { public static void walkDirs(Path startingPath, Consumer<Path> vAction) { } } } 如果要引用该字段,请使用 instance.doVisit: import java.nio.file.Path; import java.util.function.Consumer; public class MyClass { public Consumer<Path> doVisit = path -> {}; public static void main(String[] args) { MyClass instance = new MyClass(); DirWalker.walkDirs(Path.of("/tmp"), instance.doVisit); // Instance } public static class DirWalker { public static void walkDirs(Path startingPath, Consumer<Path> vAction) { } } }

回答 2 投票 0

Java8 中的 BiSupplier

我见过 BiConsumer、BiPredicate、BiFunction,但没有见过 BiSupplier 或类似的。我尝试了下面的代码,但出现了异常: “BiSupplie 中发现多个非重写抽象方法...

回答 3 投票 0

在java中的字段中存储方法(干净地)

我的情况是尽可能干净地使用 Javas OOP 设计游戏,我需要将另一个类的静态方法存储到 current 的字段中,而不使用 try{}catch{}。更具体我需要...

回答 1 投票 0

在java中使用函数式接口

我有 ProductSettings 和 ProductType。产品设置决定是否启用产品类型。 产品设置 产品设置 = new 产品设置() .setIsTreasuryInfoEn...

回答 1 投票 0

难以理解方法声明[重复]

我正在按照这个示例来了解Java 8 Function 接口。示例中使用了以下代码。 导入 org.apache.commons.codec.digest.DigestUtils; 导入java.util.ArrayList;

回答 2 投票 0

难以理解方法方法声明

我正在按照这个示例来了解Java 8 Function 接口。示例中使用了以下代码。 导入 org.apache.commons.codec.digest.DigestUtils; 导入java.util.ArrayList;

回答 2 投票 0

如何制作包含对象的 getter/setter 的 Map 的静态版本?

我有一个在调用对象时构建的映射,该映射为调用者提供变量名称作为键和 getter/setter 对作为值。这按预期工作。我的问题是我每次打电话时都会构建它......

回答 1 投票 0

在 Java 中使用 lambda 表达式设置值

这个问题只是出于好奇。 假设我有一个 Java POJO 类 @数据 公共类 MyDto{ 私有字符串 ID; } 我们可以使用 setId(value) 设置值,但问题是,我们可以使用

回答 1 投票 0

声明一个带有泛型的函数,用作查找映射中的值

我做错了什么,但不确定是什么。 尝试制作一个查找地图,为我提供可以调用的功能。 简单演示一下问题: java public class aa { /** 没关系...

回答 1 投票 0

函数接口方法调用

为什么这段代码没有返回任何输出? 公开课测试{ 公共静态可运行打印(){ return () -> System.out.println("Hello world!!!"); } 公共静态无效主(字符串[]参数...

回答 1 投票 0

Lombok @Nonnull 是否也有效果,例如供应商?

对于以下声明 公共静态 E 方法名称( @NonNull 供应商<@NonNull E> 供应商, 消费者<@NonNull E>消费者) 龙目岛

回答 1 投票 0

识别对表示为双函数的非静态 java 方法的方法引用

考虑一门课,比如说 类 Abc { 私有字符串额外信息; pubilc Abc(String extraInfo) { this.extraInfo = extraInfo; } // 假设Input1、Input2扩展同一个类'Input` 公共Input2方法...

回答 1 投票 0

一元运算符功能接口与消费者功能接口有什么区别? [已关闭]

我想知道一元运算符和消费者函数式接口有什么区别? 最终,他们俩都得到了一个函数并将其应用于泛型 T。 预先感谢您!

回答 2 投票 0

如何获取泛型函数<T,R>映射器的输入参数

我有一个成员列表,我需要将其映射为不同用途的不同键,并且我想将映射方法转变为将 keyMapper 作为 Collectors.toMap() 方法的输入参数。 公共地图<

回答 1 投票 0

为什么在Java 8中使用@FunctionalInterface注解

如果我们的接口中只有一个抽象方法,那么它默认是函数式接口。谁能解释一下@FunctionalInterface注释带来了什么额外的好处? 我知道...

回答 4 投票 0

使用JAVA RMI进行回调

我目前正在使用 Java RMI 实现一种任务包。目标是“客户端”将“任务”对象提交到“服务器”,另一方面,我有“

回答 1 投票 0

为什么我得到的是默认方法的值而不是覆盖的方法的值?

界面我的界面{ 默认 int someMethod() { 返回0; } int anotherMethod(); } 类测试实现 MyInterface { 公共静态无效主(字符串\ [\] args){ 测试 q = new Test(); q.ru...

回答 2 投票 0

放置在变量中的 Java 成员引用比较不相等

Java 8 或 Java 11 - 我通过枚举构造函数加载静态函数接口。然后我尝试与相同的成员参考进行比较。要么代码无法编译,要么再次比较...

回答 1 投票 0

© www.soinside.com 2019 - 2024. All rights reserved.