gpt4 book ai didi

java - Guice CreationException 由于缺少 java.util.Optional 的实现

转载 作者:行者123 更新时间:2023-11-30 02:47:00 35 4
gpt4 key购买 nike

我正在将一个为 Java 7 编写的应用程序升级到版本 8。它使用 Guice 将配置值注入(inject)到对象的构造函数中。然而,在升级 Java 版本后,我在运行单元测试时遇到了这个神秘的错误:

java.lang.RuntimeException: com.google.inject.CreationException: Guice creation errors:

1) No implementation for java.util.Optional<java.lang.Boolean> annotated with @Config(value=AsyncHttpClientConfigProvider.allowPoolingConnection) was bound.
while locating java.util.Optional<java.lang.Boolean> annotated with @Config(value=AsyncHttpClientConfigProvider.allowPoolingConnection)
for field at AsyncHttpClientConfigProvider.allowPoolingConnection(AsyncHttpClientConfigProvider.java:212)
at Module.configure(Module.java:24)

...


13 errors
at com.google.inject.internal.Errors.throwCreationExceptionIfErrorsExist(Errors.java:435)
at com.google.inject.internal.InternalInjectorCreator.initializeStatically(InternalInjectorCreator.java:154)
at com.google.inject.internal.InternalInjectorCreator.build(InternalInjectorCreator.java:106)
at com.google.inject.Guice.createInjector(Guice.java:95)
at com.google.inject.Guice.createInjector(Guice.java:72)
at com.google.inject.Guice.createInjector(Guice.java:62)
at org.jukito.JukitoRunner.ensureInjector(JukitoRunner.java:105)
at org.jukito.JukitoRunner.computeTestMethods(JukitoRunner.java:233)
... 19 more

我可能缺少什么会导致此错误?

最佳答案

简单地说,您缺少 @Config(AsyncHttpClientConfigProvider.allowPoolingConnection) Optional<Boolean> 的绑定(bind),与 @Config(AsyncHttpClientConfigProvider.allowPoolingConnection) Boolean 不同。对于更具体的答案,我们需要查看更多以前的工作注入(inject)点和当前失败的注入(inject)点,但考虑到 java.util.Optional 在 Java 8 之前不存在,很可能是您自己添加的,因此更改了用于查找绑定(bind)的 Guice Key。

支持Java 8's Optional<T> 与其他 Java 8 支持一样,出现在 Guice 4.0 (Apr 2015) 中。 ,并且仅当使用 Multibindings OptionalBinder 时。如果没有这个,或者在 Guice 的早期版本中,当用作键时,您的注入(inject)器将像任何其他通用类型一样对待可选。

Guice 3.0 的“可选”绑定(bind)仅限于方法和字段注入(inject) @Inject(optional=true) ,它仍然有效,但 Guice 4.0 的升级中没有任何内容会自动支持多重绑定(bind)情况之外的可选类型。

关于java - Guice CreationException 由于缺少 java.util.Optional 的实现,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39920800/

35 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com