码迷,mamicode.com
首页 > 其他好文 > 详细

编程中踩过的坑

时间:2018-08-09 21:16:29      阅读:92      评论:0      收藏:0      [点我收藏+]

标签:valueof   写入   idt   tor   table   开始   sep   方式   bug   

从今天开始在这纪录我编程过程中所遇到的坑,这些坑是完全可以避免的,分享出来希望大家不要再入坑,大家也可以分享出踩过的坑

1、生成文件的坑

编程过程中生成文件是一个很常见的需求,为了图方便我使用了反射去获取所有的字段,再一次写入文件中,我以为这是个很巧的方式,结果后来发现BUG了,花了很长的时间去找到这个根源所在,话不多说先贴出我的代码

 protected static String getLineString(Object obj) throws IllegalAccessException, IOException{
        StringBuilder sb = new StringBuilder();
        Field[] fields = obj.getClass().getDeclaredFields();
        boolean access = false;
        for(int i = 1; i < fields.length; i++){
            access = fields[i].isAccessible();
            if(!access){
                fields[i].setAccessible(true);
            }
            if(fields[i].get(obj) == null || fields[i].get(obj).equals("null")){//null不显示
            }else {
                sb.append(String.valueOf(fields[i].get(obj)));
            }
            if(i != fields.length -1) {//最后一行不加
                sb.append(SEPARATOR);
            }
            if(!access){
                fields[i].setAccessible(false);
            }
        }

        return sb.toString();
    }

后来我去读文件的时候发现读一个字段一直读得都不对,这可害苦了我,后来我才想起来是不是我生成文件的地方有问题,把实体类和数据库字段顺序一比对,果然,其中有几个字段和数据库字段的顺序不一样。下次千万不能因为省事去用反射了,还是一个个字段的写吧,而且这样也有好处,就是后来加字段和改字段了都不会受到影响,不然另外一个同事某天修改了这块你不知道,那问题可就大了。

编程中踩过的坑

标签:valueof   写入   idt   tor   table   开始   sep   方式   bug   

原文地址:https://www.cnblogs.com/WangHaiMing/p/9451537.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!