繁体   English   中英

Java中奇怪的printf()行为

[英]strange printf() behavior in Java

我有以下代码片段

System.out.printf("%b\n", 123);

打印“ true”。

有人可以解释这种行为吗? 这不应该抛出IllegalFormatException吗?

既然规范说:

“如果参数arg为null,则结果为“ false”。如果arg为布尔值或布尔值,则结果为String.valueOf()返回的字符串。否则,结果为“ true”。“( src

该行为是完全预期的,不是吗? 为什么他们决定以这种方式实现它-不知道,我同意它不是直观的(但是很好,它跟在C后面,如果您给它错误的参数,它也会打印出任何内容;))

从JavaDocs:

如果参数arg为null,则结果为“ false”。 如果arg是布尔值或布尔值,则结果是String.valueOf()返回的字符串。 否则,结果为“ true”。

您提供的参数不是nullbooleanBoolean ,因此它属于“ Otherwise”,因此为true

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM