这两种方法有什么区别?他们似乎做同样的事情对我来说(也无二parseFloat(),parseDouble(),parseLong()等等,他们如何不同Long.valueOf(string)?
编辑:此外,哪些是更好的,并按惯例更常使用?
我花了两个小时调试看起来极不可能的事情.我已经删除了辅助Android Activity的方法到这个:
public void onClick(View v) {
String str = "25";
long my_long = Long.getLong(str);
} // onClick (v)
Run Code Online (Sandbox Code Playgroud)
是的,我遇到了好的'NullPointerException:
09-11 02:02:50.444:ERROR/AndroidRuntime(1588):未捕获的处理程序:由于未捕获的异常而导致主线程退出09-11 02:02:50.464:ERROR/AndroidRuntime(1588):java.lang.NullPointerException
看起来(从其他测试中)Long.getLong(str)返回NULL,这让我疯狂.我错过了什么?
提前致谢.我很好,愚蠢地错过了明显的,但我的理智是在线.
string android nullpointerexception string-parsing long-integer
我正在整合由两个不同的人编写的代码,并注意到将一个String值转换为Long已经以两种不同的方式完成了.
编码器#1做到了这一点:
String strId = "12345678";
...
Long lId = new Long(strId);
Run Code Online (Sandbox Code Playgroud)
编码器#2做到了这一点:
String strId = "12345678";
...
Long lId = Long.valueOf(strId);
Run Code Online (Sandbox Code Playgroud)
从功能上讲,代码的运行方式完全相同.每个位周围都有一个try/catch块来处理NumberFormatException抛出的任何内容.传入的字符串值是一个8位数字符串,表示一个小数:"12345678"在两种情况下都正确地转换为Long.
在构造函数中传递字符串和使用Long.valueOf()之间是否存在任何功能差异?我在这里检查了构造函数doc:
以及valueOf()的文档:
Long.valueOf(java.lang.String中)
据我所知,他们都调用parseLong()所以使用哪个并不重要.我只是想确保自己不会在未来的某些奇怪行为中做好准备.另外,哪种风格比其他风格更"正确"(哈哈)?