首页logo
  •  

jonllen

金龙,目前就职于一家软件公司,从事Java和.Net信息安全开发设计。

个人档案

jonllen
心情闪存 | 给他留言
妮称:jonllen
来自:中国. 湖南. 湘潭
简述:金龙,目前就职于一家软件公司,从事Java和.Net信息安全开发设计。
博客日历

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

分类:Java

今天在Jsp页面内调用方法的时候碰到了一个问题,是一个服务器端分页的方法,本身是返回List集合的,但是还需要返回总记录数和总页面,没办法返回,想到Java内方法的传值传引用类型,在网上找了Java传递参数分为2种:

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

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

举个例子:

public List<Product> GetProductList(int categoryid,int pageindex,int pagesize,int[] args)
{
List
<Product> list = new ArrayList<Product>();
args[
0] = 100;
args[
1] = 101;
return list;
}

//调用
int cid = 0,pageindex =1,pagesize = 10 ,recordcount = 0,pagecount = 0;
int[] args = new int[]{recordcount,pagecount};
plist
= GetProductList(cid,pageindex,pagesize,args);
recordcount
= args[0];
pagecount
= args[1];
System.out.println(
"总记录数:" recordcount);
System.out.println(
"总页数:" pagecount);

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

标签:Java
  • posted@ 2009-06-28 14:28
  • update@ 2009-11-29 17:14:02
  • 阅读(14556)
  • 评论(0)

相关文章

评论
暂无任何评论。
发表评论
*必填
回复通知我
*必填

博文推荐