日期:2014-05-19  浏览次数:20629 次

java中,比如说我想在页面得到一个类list,一般会写getset方法,如果我直接把得到的值卸载get方法里好吗?
一般自动生成get、set方法,假设有个list没有用到它的set方法,我直接把list值写在get方法里,然后return list,让页面获取。也不是写在构造方法或者init里面,这样做有什么弊端,是不安全吗,为什么不安全?
比如:
class b{
List li=new ArrayList();

public ArrayList getLi(){
li=service.findAll(User.class);
return li;
}
这样页面是能获取li的,但是我想知道弊端是什么??
------解决方案--------------------
每次new出来的值都是一样的
------解决方案--------------------
这样做如果在其他类调用getList是能拿到,只是不能给他重新赋值了。
还有就是用到Spring注入的时候是必须用到set方法的。
------解决方案--------------------
List li=new ArrayList(); //li指向一个全新的集合对象;
li=service.findAll(User.class);//li指向findAll返回的对象;这样new出来的就会被回收掉,性能浪费是显而易见的.
------解决方案--------------------
首先正常的做法是,需要return 该List时,查出来set(List);让页面调用get()方法得到List。
如果再业务不允许改变List值的情况下,整个作用域可以调用的地方都有可以直接用了。
你这样的做法是:1,因为没有set()方法外部不能改变其值;
2,页面每个用到的地方都去又去数据库查一边。
是不是很浪费