Long.getLong() 失败,返回 null 到有效字符串
在过去的两个小时里,我一直在调试看似极不可能的事情。我已经将辅助 Android Activity 的方法剥离为以下内容:
public void onClick(View v) {
String str = "25";
long my_long = Long.getLong(str);
} // onClick (v)
是的,我因良好的 NullPointerException:
09-11 02:02:50.444: ERROR/AndroidRuntime(1588): Uncaught handler: thread main 而崩溃由于未捕获的异常而退出 09-11 02:02:50.464: ERROR/AndroidRuntime(1588): java.lang.NullPointerException
看起来(从其他测试来看)Long.getLong(str) 返回 NULL,这让我发疯。我缺少什么?
提前致谢。我可以接受愚蠢地错过显而易见的事情,但我的理智岌岌可危。
I've spent the past two hours debugging what seems extremely unlikely. I've stripped the method of a secondary Android Activity to exactly this:
public void onClick(View v) {
String str = "25";
long my_long = Long.getLong(str);
} // onClick (v)
And yeah, I get a crash with the good ol' NullPointerException:
09-11 02:02:50.444: ERROR/AndroidRuntime(1588): Uncaught handler: thread main exiting due to uncaught exception
09-11 02:02:50.464: ERROR/AndroidRuntime(1588): java.lang.NullPointerException
It looks like (from other tests) that Long.getLong(str) returns NULL, which is driving me bonkers. WHAT AM I MISSING?
Thanks in advance. I'm okay with stupidly missing the obvious, but my sanity is on the line.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(6)
您错过了这样一个事实:
Long.getLong(String str)
不应该将 String 解析为 long,而是返回表示的 系统属性 的 long 值通过那根弦。正如其他人所建议的,您实际需要的是 Long.parseLong(String str) 。You are missing the fact that
Long.getLong(String str)
is not supposed to parse a String to a long, but rather to return a long value of a system property represented by that string. As others have suggested, what you actually need isLong.parseLong(String str)
.您可以使用
Long.parseLong(String)
,而不是getLong(String)
:它会解决问题。You can use
Long.parseLong(String)
, instead ofgetLong(String)
: it will solve the problem.我认为您使用了错误的函数,使用 Long.parseLong(str) 然后您可以获得正确的答案。
I think you are using wrong function use Long.parseLong(str) then you can get the right answer.
Long.parseLong(someString) 已批准。如果可能存在无法解析的字符串,请不要忘记捕获 NumberFormatException。
Long.parseLong(someString) approved. Don't forget to catch NumberFormatException if there's a probability of unparsable string.
为了理解这一点,举一些例子:
返回:
null
返回:
3000
使用 Long.parseLong() :
返回:
32340
文档描述 getLong () 方法如下:
这是 getLong() 方法的代码,仅获取由字符串定义的属性值:
如果要将 String 解析为 Long,最好的方法是使用 Long.parseLong()< /strong> 方法。
To understand this, some examples:
returns:
null
returns:
3000
Using Long.parseLong() :
returns:
32340
The documentation describe getLong() method as :
this is the code of the getLong() method and only get a property value defined by a string:
If you want to parse a String to Long, the best way is using Long.parseLong() method.
您可以使用 Long.parseLong(String),而不是 getLong(String):它将解决问题。
You can use Long.parseLong(String), instead of getLong(String): it will solve the problem.