gpt4 book ai didi

java - 强制 Java Immutables 为 Throwable 类生成 toString()

转载 作者:塔克拉玛干 更新时间:2023-11-02 19:07:40 26 4
gpt4 key购买 nike

是否可以强制Java Immutables注释处理库为已经继承非默认 toString() 方法的抽象类生成 toString 方法?

例如:

@Value.Immutables
public abstract class MyRuntimeException extends RuntimeException {
@Value.Default
public abstract long timestamp();
@Value.Redacted
public abstract long secretTimestamp();
}

结果是:

MyRuntimeException e = ImmutableMyRuntimeException.builder().timestamp(111)
.secretTimestamp(222).build();
assert e.toString().contains("111");
assert !e.toString().contains("222");

RuntimeException 从 Throwables 继承了 toString(),而我目前看到的 Immutables 库因此跳过生成 toString()。

最佳答案

有一种方法。诀窍是在抽象值类型中声明抽象 toString 方法签名。

@Value.Immutable
public abstract class MyRuntimeException extends RuntimeException {
public abstract long timestamp();
public abstract long secretTimestamp();
@Override public abstract String toString(); //<-- forces toString impl
}

关于java - 强制 Java Immutables 为 Throwable 类生成 toString(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52267965/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com