Java中i +“abc”的类型

时间:2013-11-12 01:55:58

标签: java string stringbuilder

我正在调用

sb.append(i+"\n");

其中

StringBuilder sb= new StringBuilder();
int i. 

什么是 i +“\ n”施放到此处 - 字符串 StringBuffer CharSequence ,字符数组,......?

StringBuilder 追加(),每个参数都是一个对象,一个字符串,一个< strong> StringBuilder (这是一个私有方法), StringBuffer CharSequence 参数,字符数组,...等等。我试图找出哪些被调用 - 希望避免调用 String 参数进行快速处理。

提前致谢。

1 个答案:

答案 0 :(得分:8)

每当将运算符+应用于String和任何其他类型的变量时,就会有String个连接。 i + "\n"的值为String

java language specification涵盖了这个

  

如果只有一个操作数表达式是String类型,则为string   转换(第5.1.11节)在另一个操作数上执行以产生a   运行时的字符串。 字符串连接的结果是对String对象的引用,该对象是两个操作数字符串的串联。左侧操作数的字符位于新创建的右侧操作数的字符之前字符串。

因此,被调用的append()方法是接受String argument的方法。

作为@scottb注释,Java首先将String并置中涉及的对象转换为String个对象。 This is described in the JLS chapter on String conversion.基元未包装到其包装类型中。如果引用不是null,则在引用的对象上调用toString()方法。如果引用为null,则使用String "null"