为什么Java String.format的输出为null布尔值false,如何将String.format输出为null?

时间:2018-11-02 15:25:08

标签: java string-formatting

我确定之前已经有人问过,但是我找不到答案。

Boolean nullValue = null;
Boolean falseValue = false;
System.out.println( String.format( "%b %b", nullValue, falseValue ) );

此“ false false”的输出如何?这就是我在机器上得到的结果。 Java 8. Mac。 Java新手。

编辑

这是预期的行为。看起来Boolean toString不会产生我期望的输出null,false和true的行为。每个想要此方法的人都应该自己编写一个方法吗?有产生该输出的函数吗?

1 个答案:

答案 0 :(得分:5)

如果您在方法java.util.Formatter.FormatSpecifier.printBoolean(Object)中查找,则仅在变量为true时才显示“ true”,否则显示为false。

更进一步,这已在先前的StackOverflow question中进行了介绍。此行为在文档中指定。