我一直在使用
涉及IT技术。long a = 123456789;
String b = a+"";
将一个long
值(或int
)转换为String
,或在这个角度上将其视为字符串。我的问题是,这样做可以吗?是否有任何负面影响?
使用String.valueOf()
和Long.toString()
有什么区别吗?
谢谢
我一直在使用
涉及IT技术。long a = 123456789;
String b = a+"";
将一个long
值(或int
)转换为String
,或在这个角度上将其视为字符串。我的问题是,这样做可以吗?是否有任何负面影响?
使用String.valueOf()
和Long.toString()
有什么区别吗?
谢谢
最近的JVM可能将其缩减为以下形式:
String b = String.valueOf(a);
就缺点而言,这并不是良好的Java编码风格,因为存在歧义。如果a是null,那么b = "null"吗?还是会抛出NPE(NullPointerException)?您有经验知道答案,但所有读者都应该很清楚。
首先,你的代码无法编译 - 你需要在字面量之后添加L
:
Long a = 123456789L;
String.valueOf()
和Long.toString()
方法都有一个基本的long
参数,但由于a
是一个包装器(Long
),所以您可以使用Object#toString()
方法:
String b = a.toString();
a
是原始类型(long
),那么 String.valueOf()
和 Long.toString()
的效果是相同的,因此使用哪一个取决于个人偏好。
String.valueOf(long)
和Long.toString(long)
是相同的。如果你打开第一个,它会显示对第二个的调用。因此,直接调用第二个函数是“更有效率”的,因为你省略了中间调用。 - TimoLong
编辑为long
。因此,当 @JKNizet 发表评论时,他关于String b = a.toString();
的陈述是正确的。 - Kevin Cruijssen