我一直在使用
long a = 123456789;
String b = a+"";
将long
值(或int
)转换为String
,或者在此视角中,将其视为字符串。我的问题是,这样做可以吗?是否有任何负面影响?
使用String.valueOf()
与Long.toString()
有什么不同?
由于
答案 0 :(得分:4)
首先,您的代码无法编译 - 您必须在文字后附加L
:
Long a = 123456789L;
String.valueOf()
和Long.toString()
方法都有一个原始long
作为参数,但由于a
是一个包装器(Long
),您可以使用Object#toString()
方法:
String b = a.toString();
但是,如果a
是基元(long
),则String.valueOf()
和Long.toString()
都会做同样的事情,因此优先使用哪一个
答案 1 :(得分:4)
可以这样做,因为最近的JVM可能会将其减少为:
String b = String.valueOf(a);
对于否定,由于存在歧义,因此Java编码风格并不好。如果 a null , b =" null" ?或者NPE会被抛出?您可以通过经验了解答案,但这对您的代码的所有读者都应该是显而易见的。