如何编写一个修改数值参数的方法
来源:互联网 发布:淘宝红包套现方法 编辑:程序博客网 时间:2024/05/16 05:07
基本数据类型的包装类都是不可变类,如果将其以参数的形式传递,并在方法中对其值进行修改,达不到预期的效果。
<pre name="code" class="java">public class TestInteger {public static void main(String[] args) {Integer y = new Integer(3);tripleInteger(y);System.err.println(y); /*** 3 **/}private static void tripleInteger(Integer value) {value = value * 5;System.err.println("value = "+value); /*** value = 15 **/}}
如果想要传递的参数在方法中被修改后,其真实的值也被修改,可以使用org.omg.CORBA包中的持有者(Holder)类型,可以对传入到方法中参数的值的改变达到改变对象包装器中真实内容的改变。
public class TestInteger {public static void main(String[] args) {Integer y = new Integer(3);IntHolder holder = new IntHolder(y);tripleInteger(holder);System.err.println(holder.value); /*** 15 **/}private static void tripleInteger(IntHolder holder) {holder.value = holder.value * 5;System.err.println("value = "+holder.value); /*** value = 15 **/}}
当在一个方法中调用另一个方法,且涉及到临时变量的传递和值的改变的问题,就可以使用持有者(Holder)类型进行操作。
import org.omg.CORBA.IntHolder;public class TestInteger {public static void main(String[] args) {int y = 3;/**可以访问并修改存储在对象中的值**/IntHolder holder = new IntHolder(y);tripleHolder(holder);System.err.println(holder.value); /***15**/int x = 3;/**值没有改变**/Integer integer = new Integer(x);tripleInteger(integer);System.err.println(integer); /***3**/}private static void tripleInteger(Integer integer) {integer = integer.intValue() * 5;System.err.println("integer = "+integer); /***15**/}private static void tripleHolder(IntHolder holder) {holder.value = holder.value * 5;System.err.println("holder = "+ holder.value); /***15**/}}
0 0
- 如何编写一个修改数值参数的方法
- 如何编写一个修改数值参数的方法
- 如何编写写一个带多参数的方法
- [iPhone开发]如何编写写一个带多参数的方法
- Java如何在方法中修改传入参数的值
- 如何计算一个数值的二进制补码?
- 如何修改Spfile的参数
- 如何向一个Fragment传递参数---setArguments方法的介绍
- 如何向一个Fragment传递参数---setArguments方法的介绍
- 如何向一个Fragment传递参数---setArguments方法的介绍
- 如何向一个Fragment传递参数---setArguments方法的介绍
- NSIS如何编写带参数的函数
- 编写一个异常类MyException,再编写一个类Student,该类有一个产生异常的方法public void speak(int m) throws MyException,要求参数m的值大于1000时,方法抛出一个MyException对象。最后编写
- 编程如何修改磁盘上的一个族文件(*.rfa)文件中的参数值
- 如何编写从M中选N的组合数程序,一个不用递归方法设计,一个用递归方法设计
- java一个方法形参有两个,如何在调用的时候只传入一个参数
- Spring aop: 如何在增强方法中获取并修改目标函数的参数
- Linux下编写动态链接库,如何定义一个init和finalize的方法?
- MD5加密,并以16进制返回
- autoit实现树形结构的实例
- Rails中通过checkbox实现批量删除
- Android实现圆角边框
- R:测试向量相等
- 如何编写一个修改数值参数的方法
- Windows下的Memcache安装
- Android系统集成第三方pre-build库和程序
- JSONP实例
- 进程通信方式漫谈
- 详解Java解析XML的四种方法
- 第9周项目3 星号图(2)
- Android GSM+CDMA基站定位
- PAT (Advanced Level) Practise 1014. Waiting in Line (30)