从数据取出的数据和某个常量比较的注意点

来源:互联网 发布:阿曼西奥 奥特加 知乎 编辑:程序博客网 时间:2024/06/02 02:21

         很多时候,比较一个String类型的大小都喜欢:    

         String str = "XXX";

         if (Integer.parseInt(str)>= 0){

                System.out.println("The value of str is bigger than 0");

         }

        但如果str的值是从数据库中取得的时候?之前在一个项目呆的时候,有个要求是这样的:要求数据库表中的某一个字段的值是否 > 或 < 一个常量,于是,很理所当然的就使用了我们大家都熟悉的 (Integer.parseInt(数据库某个字段的值) > 常量) 进行比较,殊不知,当一测试的时候,老是在这个节点上挂掉,原因是当这个字段在该表中的没有数据的时候,进行 (Integer.parseInt) 的时候,出现如下的错误:java.lang.NumberFormatException,挂了也就显得非常的理所当然,   

        为了解决该问题,可以使用 compareTo() 方法去操作,以下:

         if ("0".compareTo(str) <= 0) {

                System.out.println("The value of str is bigger than 0");

         }

        如果没有必要的话,千万不要轻易的把String类型的数据转换Integer类型(不仅仅是从数据库取的值比较)

        (我是菜鸟,各位大虾表喷哈)

原创粉丝点击