今天犯了一个超低级的错误,在方法中基础类型作为参数时,值是不能改变的。

    public void changePassForIntelligentAttendance(YMachine machine,int pass) {        
        if(machine.getIntelligentAttendance() == 1) {
             pass = 0;
        }
         
    }

真是蛋蛋疼,之前用对象做参数改改改习惯了,今天顺手用基础类型作为参数去改,全然忘记了这个java的基础知识。

无论是基本类型作为参数传递,还是java对象作为参数传递,实际上传递的都是值。方法被使用时会创建一个引用的副本,相当于引用的复制体,他们指向的对象是一样的,所以即使你改变参数的值,也没有改变参数原引用的指向。

posted on 2019-09-25 09:42  煮过的花朵  阅读(285)  评论(0编辑  收藏  举报

导航