Java中对象到数字的转换。公共库中有任何方法吗?
我们的项目使用GoogleGuava、ApacheCommons,可能还有其他具有常见任务的库,我想知道这些库是否包含可以进行空安全转换(对象到数字、对象到字符串)的方法。至于现在,我给自己写了一些助手方法,例如: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
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对感谢的回答,我几乎可以肯定这不是最佳的方式