0

我经常不得不在不同的地方和项目中写这样的东西。

int appointmentId =  Integer.parseInt(StringUtils.isNotEmpty(request.getParameter
("appointmentId")) ? request.getParameter("appointmentId"): "0");

是否有一个公共类返回解析的 int 或 0 或您指定为默认返回值的东西?

4

4 回答 4

6

只是抓住NumberFormatException并返回0?在 Java API 中使用这样的方法是没有用的。我的意思是,使用你的方法,如果方法返回 0,你永远不知道是否有错误。所以从逻辑上讲,你必须自己做这样的事情。

就像是:

public int getInt(String myInt) {
    int i;
    try {
        i = Integer.parseInt(myInt);
    } catch(NumberFormatException ex) {
        i = 0;
    }
    return i;
}
于 2013-05-02T13:51:24.350 回答
2

NumberUtils.toInt()如果转换失败,Apache Commons'返回 0。

(还有另一个可以让您指定转换失败的默认值。)

于 2013-05-02T15:10:43.257 回答
0

如果您愿意使用番石榴,您可以尝试使用Ints和方法tryParse

int i = Ints.tryParse(Optional.<String> fromNullable(request.getParameter("appointmentId")).or("0"))
于 2013-05-02T13:51:34.090 回答
0

不幸的是,标准 java 库中没有这样的方法。也许一些外部依赖项包含这样的方法,但你已经这样做了。只需Util使用静态方法创建类,parseInt其中实现是您粘贴的代码。

int parseInt(String value, int default)
于 2013-05-02T13:54:11.967 回答