今天在Jsp页面内调用方法的时候碰到了一个问题,是一个服务器端分页的方法,本身是返回List集合的,但是还需要返回总记录数和总页面,没办法返回,想到Java内方法的传值传引用类型,在网上找了Java传递参数分为2种:
- 值类型,Java里面也叫简单类型,这种参数类型的传递的是它的副本拷贝;
- 引用类型,传递的是对象引用地址,如果在方法内改变该参数对象属性即是对原引用对象的改变;如果不想这样传递可传递 对象.clone() 即传递的是该对象的副本拷贝;
那么,如果我想传递简单参数类型,但是我又想在方法内能改变原参数的值那如果传递呢?比如说一个方法是返回List集合但是我还需要传递一个总记录条数和总页面的参数,在该方法内进行赋值。Java内传递值还是引用类型还有一条规定,所有数组参数都是引用传递,即传递的是原地址,一旦改变数组参数值原引用数组值也回相应的改变,这样便能在一个有返回值的方法里还返回总记录条数和页数。
举个例子:
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是一种面向对象的编程语言,它的最大特点在于其“一次编写,到处运行”的特性,能够跨越不同的操作系统平台。Java的基础由三个主要...在Java中,所有对象参数的传递实际上是引用传递,而基本类型参数则是值传递。
Lambda表达式可以作为参数传递,也可以作为返回值,这极大地简化了对集合的操作,尤其是与Stream API结合使用时。Stream API提供了声明性处理数据的方式,使得对数组和集合的过滤、映射、归约等操作更加高效和直观。...
- 参数传递:方法可以接收参数,传递值或引用。 - 返回值:方法可以返回一个值,或者无返回值(void)。 - 方法重载:同一个类中可以有多个同名方法,只要参数列表不同即可。 - 方法递归:方法调用自身,用于...
值传递是指参数的副本被传递,而引用传递是原始对象的引用被传递。Java只支持值传递,但对象作为参数实际上是传递引用的副本。Java包系统帮助组织类和接口,如java.lang、java.util和java.io等,import导入包中的类...
Java中的方法支持参数传递,可以传递基本类型数据也可以传递对象引用。方法还可以有返回值,通过return语句指定。 #### 控制结构 Java中的控制结构包括循环结构(for、while)和分支结构(if-else、switch-case)。...
7.6.1 超车方法:使用类实例做参数 172 7.6.2 调用这个方法 173 7.6.3 发生了什么 174 7.7 加餐:局部变量和实例变量 175 7.7.1 什么是局部变量(Local Variable) 175 7.7.2 什么是实例变量(Instance ...
Lambda表达式可以作为参数传递,也可以作为返回值,使得代码更加简洁和可读。 2. **方法引用和构造器引用**:这些是与Lambda表达式相关的特性,它们允许直接引用类的方法或构造器,进一步减少了代码量。 3. **接口...
- 在方法内部,可以通过引用改变对象的属性,但不能改变引用本身的指向。例如,在`ObParm`类中,`another`方法内的`v`引用被改变,但当方法结束,`v`又恢复为原来的对象引用。 3. **方法重载(Overloading)**: - ...
Java编程基础是所有Java开发者的基石,其中包括方法的定义、重载以及返回值类型等重要概念。在这份JAVA基础练习题中,我们可以看到几个关键的知识点: 1. **方法的定义**:方法`fun`的功能是求两参数之积。在Java中...
3. Java 中参数传递是按值传递,原始类型(如 int、double 等)传递的是实际值,而对象类型(如 Point)传递的是对象的引用,意味着对参数对象的修改会影响到原始对象。 这些知识点涵盖了 Java 的基础知识,包括...
- Java中,方法参数的传递总是按值传递,这意味着当一个变量传递给方法时,方法得到的是该变量值的一个副本,对方法内部变量的修改不会影响到方法外部的原始变量。例如,`count`方法中`countNumber`参数的改变不会...
Lambda表达式可以被理解为匿名函数,它们可以作为参数传递,或者作为返回值。这使得处理集合数据和事件驱动编程变得更加方便。 2. **方法引用和构造器引用**:这些是与lambda表达式紧密相关的功能,允许直接引用已...
1. **函数定义与调用**:在Java中,函数通过`public void functionName参数列表(){...}`来定义,其中`public`是访问修饰符,`void`表示函数没有返回值,`functionName`是函数名,`参数列表`是传递给函数的变量。...
理解方法的定义、参数传递和返回值是提升代码复用性和模块化设计能力的重要步骤。 7. **异常处理**: Java强制使用try-catch-finally语句来处理可能出现的异常。虽然在提供的文件名中没有明确提到,但初学者应学会...
将 double x = 2,传递进去,将选择参数为 double 的方法。 19. ClassLoader 如何加载 class? ClassLoader 负责加载类,ClassLoader 首先会检查类是否已经加载,如果没有加载,则会从文件系统中加载类,并将其...
7.6.1 超车方法:使用类实例做参数 172 7.6.2 调用这个方法 173 7.6.3 发生了什么 174 7.7 加餐:局部变量和实例变量 175 7.7.1 什么是局部变量(Local Variable) 175 7.7.2 什么是实例变量(Instance ...
由于`Cat`类继承自`Animal`类,并且`Animal`类的`noise`方法被重写了,所以会调用`Cat`类中的`noise`方法,因此输出为"meow"。 根据文件内容,尽管存在一些OCR扫描错误,我们还是可以解析出这些关键的Java面向对象...
Lambda表达式可以作为参数传递,也可以用作返回值。 - **函数式接口**:为了支持lambda,Java 8引入了函数式接口,这些接口只有一个抽象方法。例如,`Runnable`、`Callable`和新添加的`Function`、`Predicate`、`...
5. **参数组合**:在Python中,可以同时使用位置参数、关键字参数、默认参数值和可变长度参数,但需要注意的是,它们的顺序是固定的:位置参数、默认参数、星号参数、双星号参数。 6. **命名关键字参数**:这是一种...