java陷进一
项目忙,遇到问题,都是解决了继续需求开发。但是总觉得需要积累,反之重复造轮子,重复踩地雷。
把今天遇到的问题总结下:
一、方法参入的引用
引入方法参数非常常见,而且很方便,减少了参数的个数。
但是如果你要操作该对象,还是要小心,看下面的例子
A a=new A(); method(a);//method对a进行了操作 method1(a);//时候a可能已经发生变化了,因为传入的是变量的引用
代码很简单,就method和method1都要传入a对象。原先设想的两次传入的a都是一样的,只是方法中做了不同的逻辑操作。
但是由于在method中做a做了数据操作,导致了第二次引用的时候,a已经不是想要的那个a对象。
因此要慎重。虽然可以减少 A a1=method(a);
第二个,list的注意细节
list ls=new ArrayList(); method(ls); list ls2=new ArrayList(); ls2.addAll(ls2);
method2(ls2);
上面操作中method2(ls2);不会因为ls的改变而有所改变。另外retainAll 取交集.Arrays.asList(arr[])字符串转数组。
第三 数字转换VS类型转换
double d=1/2.0 long l=Long.valueOf("1.2"); Object objs[]=new Object[]{"pob"}; String strs[]=(String)objs;//错误做法 //正确的做法应该是便利objs的时候对每个 objs[i]对象进行转换。
四、细节影响大局
有时候,我们为了能将一个模块的一点细节做到更好,可能还谈不上极致,就会掉入自己挖的陷阱.因为这里会牵扯到很多不确定的因素。
所以,除非你有足够的把握,否则不要轻易为了一点细节,耽误了项目的整体进度,比如说最近的我。orz
五、开源框架的抉择
当我们原有的框架不满足新业务需求的时候,寻找一个合适的框架尤为重要,否则到了后期,可能会发现选择的框架不够强大,或则不够稳定(性能,异常)
等等,导致不能满足用户的最终需求.对项目的伤害也是非常大的。比如这次自己选择了 EasyUI的slider来完成一个比例的拖动效果。
但是发现了很多问题,比如没有max属性,值只能是100,超过100就还是100.其次感知效果也不如jqueryui的slider。
看来选择框架,还是尽量选择成熟的,权威的,用户量多的(API多)。否则开发难度为非常大。
不多了,继续苦逼的coding.