覆盖代码时:
@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 注释用法相关的问题。
我能做些什么来避免这种情况?
我想简化与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) 给定代码:
Optional<String> myOptional = getMyOptional();
myOptional.ifPresentOrElse(
s -> Optional.ofNullable(someMap.get(s))
.ifPresentOrElse(g -> {
doSomeStuff();
},
() -> doErrHandling()),
() -> doErrHandling());
Run Code Online (Sandbox Code Playgroud)
现在,我正在考虑如何简化链并删除重复的代码行(() -> doErrHandling())。
如何在这样的代码中将.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()
我正在寻找此代码的更优雅的解决方案:
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)
条件是:
感谢您的任何想法或帮助。
给定一个布尔值数组/列表,例如:
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。
您能指出一个更简单的解决方案吗?
给出测试代码:
@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)
我想检查两个给定的枚举是否包含相同的值。
也许有更优雅的方法可以做到这一点?
我想简化代码(例如使用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)
值可以是:null,String,Date