【发布时间】:2021-02-19 15:30:00
【问题描述】:
我正在尝试在我的应用程序中实现 log4j2 的编程配置,但是当我调用 ConfigurationBuilder.newComponent() 方法时,我得到了 "Not enough information to infer type variable B" 编译器错误。
这里是sn-p的代码:
val builder = ConfigurationBuilderFactory.newConfigurationBuilder()
val graylogAppender = builder.newAppender("Graylog", "Gelf")
.addAttribute("host", "tcp:localhost")
.addAttribute("port", 12201)
.addComponent(
builder.newComponent("Field") // <-- Error here
.addAttribute("literal", "some value")
)
Java 中相同的代码编译得很好。
newComponent() 的签名是:
<B extends ComponentBuilder<B>> ComponentBuilder<B> newComponent(String pluginName);
我是 Kotlin 的新手,不确定在这种情况下如何显式指定方法的返回类型。
【问题讨论】: