编程中踩过的坑
Posted wanghaiming
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了编程中踩过的坑相关的知识,希望对你有一定的参考价值。
从今天开始在这纪录我编程过程中所遇到的坑,这些坑是完全可以避免的,分享出来希望大家不要再入坑,大家也可以分享出踩过的坑
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();
}
后来我去读文件的时候发现读一个字段一直读得都不对,这可害苦了我,后来我才想起来是不是我生成文件的地方有问题,把实体类和数据库字段顺序一比对,果然,其中有几个字段和数据库字段的顺序不一样。下次千万不能因为省事去用反射了,还是一个个字段的写吧,而且这样也有好处,就是后来加字段和改字段了都不会受到影响,不然另外一个同事某天修改了这块你不知道,那问题可就大了。
以上是关于编程中踩过的坑的主要内容,如果未能解决你的问题,请参考以下文章