Groovy,可变参数的Spock通配符,Java 11 [已关闭]

r1zk6ea1  于 2023-02-07  发布在  Java
关注(0)|答案(1)|浏览(122)

2天前关闭。
Improve this question
我在我的服务中使用CompletableFutureallOf方法。

public static CompletableFuture<Void> allOf(CompletableFuture<?>... cfs) {
    return andTree(cfs, 0, cfs.length - 1);
}

如您所见,参数为CompletableFuture<?>... cfs
现在,我试着:CompletableFuture.allOf(*_).join() >> { Void }
我得到:

  • 无方法签名:静态java. util. concurrent. completableFuture. allOf()适用于参数类型:(组织. spockframework. lang.扩展通配符)值:[**]可能的解决办法:所有的([L语言.实用程序.并发.可完成的未来;),anyOf([Java.实用程序.并发.可完成的将来;)、任意()、休眠(long)、任意(groovy. lang.闭包)、拆分(groovy. lang.闭包)无方法签名:静态java. util. concurrent. completableFuture. allOf()适用于参数类型:(组织. spockframework. lang.扩展通配符)值:[**]可能的解决办法:所有的([L语言.实用程序.并发.可完成的未来;),anyOf([Java.实用程序.并发.可完成的将来;)、任意()、休眠(长)、任意(groovy. lang.闭包)、拆分(groovy. lang.闭包)*

使用CompletableFuture.allOf(_).join() >> { Void }
使用CompletableFuture.allOf([_ as CompletableFuture<?>]).join() >> { Void }

  • 无方法签名:静态java. util. concurrent. completableFuture. allOf()适用于参数类型:(数组列表)值:java.util.concurrent.CompletableFuture@1fd956dd [正常完成]可能的解决方案:所有的([L语言.实用程序.并发.可完成的未来;),anyOf([Java.实用程序.并发.可完成的将来;)、任意()、任意(groovy. lang.闭包)、拆分(groovy. lang.闭包)、休眠(long)groovy. lang。无方法签名:静态java. util. concurrent. completableFuture. allOf()适用于参数类型:(数组列表)值:java.util.concurrent.CompletableFuture@1fd956dd [正常完成]可能的解决方案:所有的([L语言.实用程序.并发.可完成的未来;),anyOf([Java.实用程序.并发.可完成的将来;)、任意()、任意(groovy. lang.闭包)、拆分(groovy. lang.闭包)、休眠(long)*
  • CompletableFuture.allOf([_ as CompletableFuture<?>]).join() >> { Void }
  • CompletableFuture.allOf([*_]).join() >> { Void }

怎么会呢?

lymnna71

lymnna711#

您可以尝试:

CompletableFuture.allOf([] as CompletableFuture<String>).join() >> { Void }

CompletableFuture.allOf([] as CompletableFuture<?>).join() >> { Void }

CompletableFuture.allOf([_] as CompletableFuture<String>).join() >> { Void }

相关问题