java改变传入参数的值

在一个方法的传入参数中,需要修改这个传入参数的值,有时候发现没有改变成功

需要好好阅读下下面的几句话:

1、对于基本类型参数,在方法体内对参数进行重新赋值,并不会改变原有变量的值。

2、对于引用类型参数,在方法体内对参数进行重新赋予引用,并不会改变原有变量所持有的引用。 

3、方法体内对参数进行运算,不影响原有变量的值。 

4、方法体内对参数所指向对象的属性进行操作,将改变原有变量所指向对象的属性值。 

也就是说,对于基本数据类型,实现的是传值,只是个形参,不会改变原有值。对于引用数据类型,对这个引用进行操作,其实也是相当于对形参的操作,不会改变原来的引用。但是,当对这个引用的属性进行操作的时候,相当于CPP中的传址调用,可以改变这个引用的属性的值。(借鉴的别人的话)

后面我写了个例子:

@RequestMapping(value="/testOn",method = {RequestMethod.POST,RequestMethod.GET})
    @ResponseBody
    public String testOn(Integer memberId,String nodeCode){

        JSONArray jsonArray = new JSONArray();
        changeJsonArray(jsonArray);

        System.out.println(jsonArray.toString());
        return  "1";
    }



    public void changeJsonArray(JSONArray jsonArray){


        JSONArray ja1 = new JSONArray();
        JSONObject jo1 = new JSONObject();
        jo1.put("key1",1);
        ja1.add(jo1);
        jsonArray.addAll(ja1);
    }

代码输出: {"key1":1}

  • 3
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值