在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