java方法强制传递引用参数(做为返回值),改变被传递参数值。

时间:2023-03-08 16:16:10

Java传递参数分为2种:

  • 值类型,Java里面也叫简单类型,这种参数类型的传递的是它的副本拷贝;
  • 引用类型,传递的是对象引用地址,如果在方法内改变该参数对象属性即是对原引用对象的改变;如果不想这样传递可传递 对象.clone() 即传递的是该对象的副本拷贝;

那么,如果我想传递简单参数类型,但是我又想在方法内能改变原参数的值那如果传递呢?比如说一个方法是返回List集合但是我还需要传递一个总记录条数和 总页面的参数,在该方法内进行赋值。Java内传递值还是引用类型还有一条规定,所有数组参数都是引用传递,即传递的是原地址,一旦改变数组参数值原引用 数组值也回相应的改变,这样便能在一个有返回值的方法里还返回总记录条数和页数。

举个例子:

  1. public List<Product> GetProductList(int categoryid,int pageindex,int pagesize,int[] args)
  2. {
  3. List<Product> list = new ArrayList<Product>();
  4. args[0] = 100;
  5. args[1] = 101;
  6. return list;
  7. }
  8. //调用
  9. int cid = 0,pageindex =1,pagesize = 10 ,recordcount = 0,pagecount = 0;
  10. int[] args = new int[]{recordcount,pagecount};
  11. plist = GetProductList(cid,pageindex,pagesize,args);
  12. recordcount = args[0];
  13. pagecount = args[1];
  14. System.out.println("总记录数:"+recordcount);
  15. System.out.println("总页数:"+pagecount);

这里结果将会输出 总记录数:100 总页数:101