Junit Arguments.of() 不接受 Java 的 Consumer 接口实现

问题描述 投票:0回答:1

这可以编译


    public static Stream argumentProvider() {
     Consumer<Instant> consumer = (i)-> Assert.assertNotNull(i);

        return Stream.of(
                Arguments.of("2024-11-06 00:00:00",13,-2, consumer)
        );
    }

但事实并非如此,为什么呢?以及如何解决?

    public static Stream argumentProvider() {
     Consumer<Instant> consumer = (i)-> Assert.assertNotNull(i);

        return Stream.of(
                Arguments.of("2024-11-06 00:00:00",13,-2,  (i)-> Assert.assertNotNull(i))
        );
    }

以上(第二版

java junit
1个回答
0
投票

类型推断弱点

编译器的类型推断系统无法准确推断此特定场景中的类型。 在编译器的类型推断系统无法准确推断类型的情况下,显式注释类型表达式可以帮助指导编译器。您可以提供显式类型声明来指导编译器的推理过程。

示例:

Stream.of(Arguments.of("2024-11-06 00:00:00",13,-2,
  (Consumer<Instant>)i-> assertNotNull(i)));
© www.soinside.com 2019 - 2024. All rights reserved.