小编Der*_*usA的帖子

未注释的参数覆盖@??? 范围

覆盖代码时:

    @Override
  public void open(ExecutionContext executionContext) {
    super.open(executionContext);
Run Code Online (Sandbox Code Playgroud)

来自:org.springframework.batch.item.support.AbstractItemCountingItemStreamItemReader

我收到 IntelliJ 警告:

未注释的参数覆盖@??? 参数较少... (Strg+F1) 检查信息:报告与在常量条件和异常检查中配置的 @Nullable 和 @NotNull 注释用法相关的问题。

我能做些什么来避免这种情况?

spring warnings nullable intellij-idea notnull

8
推荐指数
1
解决办法
2万
查看次数

用另一个列表扩展ImmutableList.of()

我想简化与ImmutableList.of()功能相关的现有代码

我曾经尝试通过消除“ new ...”构造函数来优化第二个List的创建,但是我当然不能通过调用.add()来扩展不可变列表。

当前代码:

static final ImmutableList<ProductCodeEnum> PRODUCTS = ImmutableList.of(ProductCodeEnum.A, ProductCodeEnum.B, ProductCodeEnum.C);


static final ImmutableList<ProductCodeEnum> PRODUCTS_EXTENDED_LIST = new ImmutableList.Builder<ProductCodeEnum>().addAll(PRODUCTS)
.add(ProductCodeEnum.D)
.add(ProductCodeEnum.E)
.build();
Run Code Online (Sandbox Code Playgroud)

预期的代码如下:

static final ImmutableList<ProductCodeEnum> PRODUCTS = ImmutableList.of(ProductCodeEnum.A, ProductCodeEnum.B, ProductCodeEnum.C);


static final ImmutableList<ProductCodeEnum> PRODUCTS_EXTENDED = PRODUCTS + ImmutableList.of(ProductCodeEnum.D, ProductCodeEnum.E);
Run Code Online (Sandbox Code Playgroud)

java guava immutablelist

5
推荐指数
1
解决办法
81
查看次数

简化ifPresentOrElse链

给定代码:

  Optional<String> myOptional = getMyOptional();
  myOptional.ifPresentOrElse(
      s -> Optional.ofNullable(someMap.get(s))
      .ifPresentOrElse(g -> {
            doSomeStuff(); 
          },
          () -> doErrHandling()),
      () -> doErrHandling());
Run Code Online (Sandbox Code Playgroud)

现在,我正在考虑如何简化链并删除重复的代码行(() -> doErrHandling())。

java optional chain

4
推荐指数
1
解决办法
79
查看次数

如何将.min()或.max()作为流的方法参数?

如何在这样的代码中将.min()or .max()表达式作为方法参数传递:

给定代码:

private LocalDate getMaxDate() {
    LocalDate maxdate = dates.stream()
              .max( Comparator.comparing( LocalDate::toEpochDay ) )
              .get();
}

private LocalDate getMinDate() {
    LocalDate maxdate = dates.stream()
              .min( Comparator.comparing( LocalDate::toEpochDay ) )
              .get();
}
Run Code Online (Sandbox Code Playgroud)

我希望拥有的代码:

private LocalDate getDate(SomeType _EXPR_){
        LocalDate maxdate = dates.stream()
                  ._EXPR_( Comparator.comparing( LocalDate::toEpochDay ) )
                  .get();
    }
Run Code Online (Sandbox Code Playgroud)

提示:_EXPR_应为.min(),有时.max()

java max min java-8 java-stream

3
推荐指数
1
解决办法
79
查看次数

两种可选方案的理想解决方案,如果存在一个,则另一个不能为空

我正在寻找此代码的更优雅的解决方案:

var first = Optional.ofNullable(a);
var second = Optional.ofNullable(b);
if ((unit.isPresent() && value.isEmpty()) || (value.isPresent() && 
     unit.isEmpty())) {
  throw new ExpWhatever();
}
Run Code Online (Sandbox Code Playgroud)

条件是:

  • 如果两个可选参数均为null->确定,则没有错误/错误。
  • 如果存在一个给定的可选选项,则另一个也不能为空(否则:excpt。)

感谢您的任何想法或帮助。

java optional

2
推荐指数
2
解决办法
169
查看次数

如何检查至少一个布尔值是否为真?

给定一个布尔值数组/列表,例如:

Boolean a = true;
Boolean b = true;
Boolean c = false;
Boolean d = null;
Run Code Online (Sandbox Code Playgroud)

我想检查至少一个布尔值是否为真。因此样本应计数 true=2 (a + b)。

我尝试了番石榴风格:

return Booleans.contains(
        new boolean[] {a, b, c, d}, true);
Run Code Online (Sandbox Code Playgroud)

但结果却是NPE。

您能指出一个更简单的解决方案吗?

java boolean guava

2
推荐指数
1
解决办法
3708
查看次数

两个枚举的java比较

给出测试代码:

@Test
  public void testEnumAreEqual() {
    for (var someEnum : SomeEnum.values()) {
      Assertions.assertTrue(EnumUtils.isValidEnum(OtherEnum.class, someEnum.name()));
    }
    for (var otherEnum : OtherEnum.values()) {
      Assertions.assertTrue(EnumUtils.isValidEnum(SomeEnum.class, otherEnum.name()));
    }
  }
Run Code Online (Sandbox Code Playgroud)

我想检查两个给定的枚举是否包含相同的值。

也许有更优雅的方法可以做到这一点?

java comparison enums

0
推荐指数
1
解决办法
50
查看次数

简化代码并避免instanceOf和null检查

我想简化代码(例如使用Optionals)

private String formatValue(Object value) {
    if (value == null) {
        return null;
    } else if (value instanceof Date) {
        return MyUtils.formatDate((Date)value, Constant.DATE_FORMAT_YYYYMMDD_HHMMSS);
    }

    return value.toString();
}
Run Code Online (Sandbox Code Playgroud)

值可以是:nullStringDate

java null object instanceof optional

-1
推荐指数
1
解决办法
90
查看次数