如何解释这行Java代码?

如何解释这行Java代码?,java,Java,因此,这看起来像是使用if语句检查bom.getCharsetName()是否实际返回了有效的字符集名称的一种奇特方法。但是,它非常混乱,我以前从未见过这种语法。这是如何一件一件地分解的 String charsetName = bom == null ? defaultEncoding : bom.getCharsetName(); 这回答了你的问题吗?只是Java版本的三元条件。如果bom为null,则使用defaultEncoding;如果不是,则使用bom.getCharsetName

因此,这看起来像是使用if语句检查
bom.getCharsetName()
是否实际返回了有效的字符集名称的一种奇特方法。但是,它非常混乱,我以前从未见过这种语法。这是如何一件一件地分解的

String charsetName = bom == null ? defaultEncoding : bom.getCharsetName();

这回答了你的问题吗?只是Java版本的三元条件。如果bom为null,则使用defaultEncoding;如果不是,则使用
bom.getCharsetName()
作为
charsetName
的值。这些重复项在我看来并不令人满意,因为它们也不能解释赋值的返回值。@TimBiegeleisen这又有什么关系呢?这两个操作数都没有赋值。只分配了三元运算符的返回值,这是一个非常正常的分配,没有什么特别的。