编程语言
首页 > 编程语言> > 在Java中更改参数是一个好习惯

在Java中更改参数是一个好习惯

作者:互联网

假设我在Java中编写方法foo(int i).
因为我通过值传递,所以在foo中更改它是安全的.例如

void foo(int i) {
   i = i + 1; // change i
   ...
}

在Java中更改方法的参数是否被认为是好的或坏的做法?

解决方法:

一般来说,它被认为是不好的做法,尽管有些人忽略了它,你可以在其他答案中看到.

对于通过值直接传入的基元等参数,覆盖原始变量没有任何优势.在这种情况下,您应该按照@João的建议制作副本.

对于通过值(对象)传入引用的参数,如果修改句柄以指向其他对象,则完全令人困惑.这一点更为重要,因为修改作为参数传递的对象的内容也会修改原始对象.

如果替换句柄引用的对象,然后修改其内容,则不会修改原始对象,但是读取代码的人可能会期望它.

如果您不替换对象并修改内容,则调用方法的方法可能不会期望此更改.此类别通常属于与安全相关的不良做法.

标签:java,pass-by-value
来源: https://codeday.me/bug/20191006/1861611.html