【发布时间】:2022-12-12 12:00:04
【问题描述】:
我有一个扩展方法:
static <T> T firstOrNull(List<T> self) {
return (self == null || self.isEmpty()) ? null : (T) self.first()
}
构建和编译。但是,当我调用它时:
List<String> list = ["abc"]
assert list.firstOrNull() == "abc"
self 始终为空。
我可以直接调用静态方法:
CollectionIdioms.firstOrNull(["abc"])
返回正确的结果。这是我的META-INF/services/org.codehaus.groovy.runtime.ExtensionModule:
moduleName=Groovy Extensions
moduleVersion=1.0
extensionClasses=
staticExtensionClasses=util.CollectionIdioms
【问题讨论】:
-
什么是 groovy 版本?
-
meta-inf 在哪里?它是罐子的一部分吗?你是如何加载罐子的?
-
@dagget 它在 Jar 文件中,由打开静态标志的代码使用。 groovy 版本是 2.5.15。今天晚些时候我会尝试把它放在一个小项目中。我可能会那样偶然发现解决方案。
标签: groovy