使 String.format(“%s”, arg) 显示空值参数的方式与“空值”不同
2022-08-31 21:07:57
考虑一个 Bean 的自定义实现:toString()
@Override
public String toString() {
String.format("this is %s", this.someField);
}
这将产生 if 为 null。this is null
someField
有没有办法将空值参数的默认字符串表示形式重写到另一个文本,即,在toString
方法中不显式调用replaceAll(...)
?null
?
注意:Bean继承自一个可以实现的超类(http://docs.oracle.com/javase/7/docs/api/java/util/Formattable.html),但我似乎不明白如何使它工作。Formattable
编辑:为了示例起见,该片段过于简化,但我不是在寻找三元运算符解决方案,因为:someField==null ? "?" : someField
- 可能(可能)涉及许多字段,因此检查所有字段太麻烦且不流畅。
toString()
- 其他我几乎无法控制的人(如果有的话)正在编写自己的子类。
- 如果调用一个方法并返回 null,则意味着调用该方法两次或声明局部变量。
相反,可以使用界面或进行一些自定义(顺便说一句)来完成任何事情吗?Formattable
Formatter
final