Conditional operator in concatenated string

后端 未结 4 1868
天命终不由人
天命终不由人 2020-12-11 01:35

I\'d like know why the following program throws a NPE

public static void main(String[] args) {
    Integer testInteger = null;
    String test = \"test\" + t         


        
4条回答
  •  情话喂你
    2020-12-11 01:54

    This is an example of the importance of understanding operator precedence.

    You need the parentheses otherwise it is interpreted as follows:

    String test = ("test" + testInteger) == null ? "(null)" : testInteger.toString();
    

    See here for a list of operators and their precedence. Also note the warning at the top of that page:

    Note: Use explicit parentheses when there is even the possibility of confusion.

提交回复
热议问题