在Java中, String.valueOf(Object)
和 Object.toString()
之间有什么区别吗?这些有特定的代码约定吗?
原文由 MCMastery 发布,翻译遵循 CC BY-SA 4.0 许可协议
在Java中, String.valueOf(Object)
和 Object.toString()
之间有什么区别吗?这些有特定的代码约定吗?
原文由 MCMastery 发布,翻译遵循 CC BY-SA 4.0 许可协议
String.valueOf(Object) 和 Object.toString() 之间的区别是:
1) 如果字符串为空,
String.valueOf(Object)
将返回 "null"
,而 Object::toString()
将抛出空指针异常。
public static void main(String args[]){
String str = null;
System.out.println(String.valueOf(str)); // it will print null
System.out.println(str.toString()); // it will throw NullPointerException
}
2) 签名:
String 类的 valueOf() 方法是静态的。而 String 类的 toString() 方法是非静态的。
string 的 valueOf() 方法的签名或语法如下:
public static String valueOf(boolean b)
public static String valueOf(char c)
public static String valueOf(char[] c)
public static String valueOf(int i)
public static String valueOf(long l)
public static String valueOf(float f)
public static String valueOf(double d)
public static String valueOf(Object o)
字符串的 toString()
方法的签名或语法如下:
public String toString()
原文由 Shipra Sharma 发布,翻译遵循 CC BY-SA 4.0 许可协议
4 回答1.4k 阅读✓ 已解决
4 回答1.2k 阅读✓ 已解决
1 回答2.6k 阅读✓ 已解决
1 回答2.8k 阅读✓ 已解决
2 回答737 阅读✓ 已解决
2 回答1.7k 阅读
2 回答1.7k 阅读
根据 Java 文档,
String.valueOf()
返回:因此,除了额外的方法调用之外,实际上应该没有什么区别。
此外,在
Object#toString
的情况下,如果实例是null
,则NullPointerException
将不太 安全 地抛出。