你可以返回
Integer而不是,以在解析失败时
int返回null。
遗憾的是,Java没有提供一种没有内部抛出异常的方法来执行此操作-你可以隐藏该异常(通过捕获该异常并返回null),但是如果你要解析数百个异常,它仍然可能是性能问题用户提供的数以千计的数据。
编辑:这种方法的代码:
public static Integer tryParse(String text) { try { return Integer.parseInt(text); } catch (NumberFormatException e) { return null; }}请注意,如果不确定
text为null ,我不确定该怎么办。你应该考虑-如果它代表一个错误(即你的代码很可能传递了一个无效值,但决不应该传递null),则抛出异常是适当的;如果它不表示错误,则可能应该返回null,就像返回其他任何无效值一样。
最初,这个答案使用了
new Integer(
String)构造函数。现在使用
Integer.parseInt和拳击操作;这样,小的值最终将被装箱到缓存的
Integer对象中,从而使其在这种情况下更加有效。



