Java “之间的区别是什么?”;(二)&;要字符串'?
这两者有什么区别Java “之间的区别是什么?”;(二)&;要字符串'?,java,Java,这两者有什么区别 int a=20; System.out.print(a.toString); System.out.print(String.valueOf(a)); 谢谢 两个区别: 您的示例即使将a.ToString更正为a.ToString(),也不会起作用,因为a是int,而不是对象,因此没有方法。您必须编写新整数(a).toString()。而String.valueOf调用将自动装箱,因此它将有一个toString 如果a是一个对象引用,区别在于String。如果a是null(
int a=20;
System.out.print(a.toString);
System.out.print(String.valueOf(a));
谢谢 两个区别:
a.ToString
更正为a.ToString()
,也不会起作用,因为a
是int
,而不是对象,因此没有方法。您必须编写新整数(a).toString()
。而String.valueOf
调用将自动装箱,因此它将有一个toString
a
是一个对象引用,区别在于String。如果a
是null
(这显然不在您的情况下,因为a
是一个int
,然后自动装箱),那么valueOf(a)
将为“null”
,而a.toString()
将抛出一个NullPointerException
我们可以在JDK提供的String.valueOf
的源代码中看到:
public static String valueOf(Object obj) {
return (obj == null) ? "null" : obj.toString();
}
因此:使用
String.valueOf
,原语会自动装箱,对象引用会受到null
保护。String.valueOf
可用于转换,其中astoString
是每个对象覆盖或继承对象来字符串化自身的标准函数 第二行不会编译,是吗?有几个原因(1)int
是基元类型,因此它没有方法和字段,(2)即使使用int->Integer
的对象表示,它也没有字段toString
。如果您试图将其作为方法调用,则应添加()
@Sajjad-HiFriend:3个原因:1a
是一个int
,并且原语没有方法。2.在刚才编辑之前,您有a.ToString
(大写T
),而方法名称是ToString
(小写T
)。案例在Java中很重要。3.您将toString
视为一个字段。它不是,它是一个方法,所以你必须在它后面加上()
来调用它。