Lombok @Nonnull 是否也有效果,例如供应商?

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

对于以下声明

public static <E extends SomeInterface> E methodName(
    @NonNull Supplier<@NonNull E> supplier,
    Consumer<@NonNull E> consumer)

Lombok 是否会自动对

supplier
的结果进行空检查? 和/或确保传入的 E 进行空检查(例如,通过生成空包装器)对
consumer
有意义吗?

java lombok functional-interface
1个回答
0
投票

正如推荐,这可以很容易地检查:Lombok 不这样做。测试代码示例:

   static class NullWrapperTest
   {
      public static void check(@NonNull Supplier<@NonNull Object> supplier,
            Consumer<@NonNull Object> consumer)
      {
         consumer.accept(supplier.get());
      }
   }

   @Test()
   void testNullity()
   {
      assertThatThrownBy(() -> NullWrapperTest.check(() -> null, (param) -> System.out.println(param)));
   }

测试失败,没有抛出异常。如果您知道这是否有计划,请添加另一个答案。

© www.soinside.com 2019 - 2024. All rights reserved.