Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/342.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/lua/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java中对象到数字的转换。公共库中有任何方法吗?_Java_Guava_Apache Commons - Fatal编程技术网

Java中对象到数字的转换。公共库中有任何方法吗?

Java中对象到数字的转换。公共库中有任何方法吗?,java,guava,apache-commons,Java,Guava,Apache Commons,我们的项目使用GoogleGuava、ApacheCommons,可能还有其他具有常见任务的库,我想知道这些库是否包含可以进行空安全转换(对象到数字、对象到字符串)的方法。至于现在,我给自己写了一些助手方法,例如: int parseInteger(Object obj) { if (obj!= null) { if (obj instanceof Integer) return (Integer) obj; if (obj ins

我们的项目使用GoogleGuava、ApacheCommons,可能还有其他具有常见任务的库,我想知道这些库是否包含可以进行空安全转换(对象到数字、对象到字符串)的方法。至于现在,我给自己写了一些助手方法,例如:

int parseInteger(Object obj) {
        if (obj!= null) {
            if (obj instanceof Integer) return (Integer) obj;
            if (obj instanceof Long) return ((Long) obj).intValue();
            return Integer.parseInt(obj.toString());
        } else {
            return 0;
        }
    }

我很确定在番石榴中没有这样的东西。正如已经指出的那样

Guava试图迫使您尽可能避免使用null,因为null存在时的不当或未记录的行为可能会导致大量的混乱和bug。我认为尽可能避免使用null绝对是一个好主意,如果您可以修改代码使其不使用null,我强烈建议您使用这种方法

类似的参数适用于
parseeverythingsint
。您正在寻找一个接受任何内容并返回
int
的方法。这种方法的存在鼓励人们编写返回任何内容的方法。这肯定不是好的做法,因为严格有助于防止错误。这就是为什么我很确定在番石榴中没有这种方法


也许我的答案最好是一个评论,但它太长了,我认为无论如何都不会有一个肯定的答案。

我很确定番石榴中没有这样的东西。正如已经指出的那样

Guava试图迫使您尽可能避免使用null,因为null存在时的不当或未记录的行为可能会导致大量的混乱和bug。我认为尽可能避免使用null绝对是一个好主意,如果您可以修改代码使其不使用null,我强烈建议您使用这种方法

类似的参数适用于
parseeverythingsint
。您正在寻找一个接受任何内容并返回
int
的方法。这种方法的存在鼓励人们编写返回任何内容的方法。这肯定不是好的做法,因为严格有助于防止错误。这就是为什么我很确定在番石榴中没有这种方法


也许我的答案最好是一个注释,但它太长了,而且我认为不会有肯定的答案。

所以你不必关心
parseInteger(null)
parseInteger(0L)
是否有相同的结果?你真幸运;)不是您问题的答案,但如果(obj instanceof Number)返回((Number)obj).intValue(),您可以使用此
if
而不是两个独立的
整数
/
检查。对于Andreas_D的观点,请参阅Louis Wasserman对感谢的回答,我几乎可以肯定这不是最佳的方式,所以您不必关心
解析整数(null)
解析整数(0L)
是否有相同的结果?你真幸运;)不是您问题的答案,但如果(obj instanceof Number)返回((Number)obj).intValue(),您可以使用此
if
而不是两个独立的
整数
/
检查。对于Andreas_D的观点,请参阅Louis Wasserman对感谢的回答,我几乎可以肯定这不是最佳的方式