问题标签 [supplier]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
350 浏览

java - 如何在没有球衣的情况下创建“自定义注入提供程序”(工厂)

有没有一种方法可以达到此处描述的相同结果,而不是取决于球衣,而是纯粹的 jax-rs?我想创建一个像 Jersey 这样的自定义注入提供程序,这样我就可以注入 MyClass 从 HttpServletRequest 中提取自定义数据

我还发现这个讨论很有用,它的工作原理相同,java.util.function.Supplier但在这段代码中仍然需要 Jersey:

编辑:

CDI 也是一个不错的选择,但更可取的是纯 jax-rs

0 投票
2 回答
4169 浏览

java - (Java 8) java.util.function.Supplier

在下面的代码中,我尝试调用获取供应商的 info 方法。(info 方法被重载:一个是 String,另一个是 Supplier。)编译器抱怨“方法 info(String) 不适用于参数Supplier<Double>”。我的期望是通过发送 Supplier 对象来调用获取 Supplier 的 info 方法。我可以得到一些帮助来理解这个错误吗?

0 投票
0 回答
35 浏览

java - 这些 lambda 供应商之间有什么区别?

我只是想知道这两个供应商声明之间是否有任何区别:

提前致谢 :)。

0 投票
1 回答
1945 浏览

java - Java:获取通用供应商返回对象的类类型

假设给出了以下定义:

有没有办法在MyClass.class不实际调用.get()供应商的情况下获得?

为什么?我必须知道指定的类才能做出一些合乎逻辑的决定。基于此,我可能需要找到另一个MyClass具有参数的构造函数,并且我对目标类的唯一了解是这种类型的提供者。当然,我可以调用.get()并从那里开始,如下所示:

但是在执行我的中间步骤之前使用它可能会导致不必要的对象创建

0 投票
0 回答
356 浏览

java - Unsing Java 的供应商接口以促进单元测试的模拟行为

我最近不得不重构一个类 [X] 并改进它的单元测试,并在这样做时发现为了从测试中全面覆盖该类,我需要模拟该类的 3 个不同组件的行为. 为了论证,类 [A]、[B] 和 [C]。因为 [A]、[B] 和 [C] 都在 [X] 中构建,我决定为它们中的每一个传递一个供应商,从而允许单元测试模拟供应商并实现类的完整测试覆盖。

然而,我的一位同事建议我可以为 [A]、[B] 和 [C] 中的每一个添加包可见的 getter 方法来处理对象构造,然后在创建 [ 的实例时从单元测试中覆盖这些方法X] 进行测试。

我可以看到这消除了添加 Supplier 实现的额外复杂性,但我觉得这不必要地暴露了 [X] 的实现。这些方法中的一种是否被认为比另一种更好?我正在从事的项目使用我不太熟悉的 Spring,但我想知道是否有更好的解决方案。

有没有人对此有一些可靠的建议?

0 投票
3 回答
1318 浏览

java - 为什么 Optional 的 or 和 flatMap 方法的供应商类型参数是通配符?

Optional.or方法是在 Java 9 中添加的。这是方法签名

既然是final类,为什么是Suppliertake的类型参数? extends Optional而不是just ?OptionalOptional

Optional.flatMap方法也是如此。这是对 Java 8 的更改。

在 Java 8 中,它在 Java 9 中Function<? super T, Optional<U>> mapper被更改为Function<? super T,​? extends Optional<? extends U>>

0 投票
1 回答
438 浏览

java - 使用 Callable 而不是供应商,反之亦然

我遇到了使用Callable而不是Supplier. 我没有看到任何线程产生使用Callable。但是可以使用Callable代替Supplier吗?

与我一起工作的一位开发人员说它做同样的工作。通过文档,它不会但想在这里了解专家的意见。

处理响应的方法

0 投票
3 回答
149 浏览

lambda - 使用 Lambda 函数来使用供应商提供的所有对象

寻找如何使用 Java lambda 函数,以便消费者可以处理供应商提供的所有对象,并摆脱显式while循环和null检查。

我有一个数据库的字符串键供应商,我想使用消费者来处理这些键中的每一个。

我想consumer处理由提供的每个密钥keyGen并尝试以下操作。它可以工作,但我确信必须有一种更简洁的方式来使用 lambda 函数来简化它。

SimpleKeySupplier 有效,简化版本如下:

此示例中的消费者已大大简化,可用于在 StackOverflow 上发布。

0 投票
0 回答
484 浏览

java - java.lang.Long 不是函数式接口

我创建了这个 GenericBuilder 类(几乎没有受到如何在 Java 8 中实现构建器模式的启发?

但是第二个 with() 方法抛出

不兼容的类型:无法推断类型变量 U(参数不匹配;java.lang.Long 不是函数式接口)

当我执行以下操作时:

请注意,实体是实体类的一个实例。

0 投票
2 回答
838 浏览

junit - 在 JUnit 5 中将 `Supplier` 作为消息提供者的选项的实际用途

JUnit 5 中的Assertions类允许传递Supplier<String>as amessageSupplier对象,该对象提供测试失败时报告的消息文本。

例如assertEquals

我想知道这样一个供应商的实际用途可能是什么,特别是在单元测试的背景下。

我可以想象也许本地化字符串,虽然当观众是开发项目的成员时本地化似乎有点奇怪。

➥ 除了硬编码消息字符串之外,传递这样的消息提供者还有其他实际用途吗?