java值传递
相信大家都知道,java是值传递,而C语言是引用传递(所谓的引用传递就是传递地址,C语言可以传递指针,也就是所谓的地址)
C语言因为有指针的存在,可以进行值传递,也可以进行引用传递。
重点介绍java:
java如果是面试,问什么传递,答值传递肯定是正确的
但是如果java 是对象传递,那成了引用传递
举例:
当listview适配BaseAdapter。我们需要传递对象,
class CommunityAdapter extends BaseAdapter {
ArrayList<OrderBean> listsData = new ArrayList<OrderBean>();
CommunityAdapter(ArrayList<OrderBean> lists) {
this.listsData=lists;
notifyDataSetChanged();
}
当我们在外边将lists 清空,listsData也就被清空 ,(我遇到这个问题,根本就没吊用刷新数据方法,listsData大小自己变化,郁闷)
将代码改成这样就没问题了
class CommunityAdapter extends BaseAdapter {
ArrayList<OrderBean> listsData = new ArrayList<OrderBean>();
CommunityAdapter(ArrayList<OrderBean> lists) {
this.listsData.addAll(lists);
notifyDataSetChanged();
}