相关疑难解决方法(0)

java中的parseInt和valueOf之间的区别?

这两种方法有什么区别?他们似乎做同样的事情对我来说(也无二parseFloat(),parseDouble(),parseLong()等等,他们如何不同Long.valueOf(string)

编辑:此外,哪些是更好的,并按惯例更常使用?

java language-features

414
推荐指数
6
解决办法
18万
查看次数

Long.getLong()失败,返回null为有效字符串

我花了两个小时调试看起来极不可能的事情.我已经删除了辅助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

33
推荐指数
5
解决办法
2万
查看次数

Long.valueOf(java.lang.String)和new Long(java.lang.String)之间的区别?

我正在整合由两个不同的人编写的代码,并注意到将一个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:

龙(java.lang.String中)

以及valueOf()的文档:

Long.valueOf(java.lang.String中)

据我所知,他们都调用parseLong()所以使用哪个并不重要.我只是想确保自己不会在未来的某些奇怪行为中做好准备.另外,哪种风格比其他风格更"正确"(哈哈)?

java coding-style long-integer

28
推荐指数
2
解决办法
3万
查看次数