如何在Java中模拟按引用传递?

如何在Java中模拟按引用传递?,第1张

如何在Java中模拟按引用传递

模拟传递引用的主要方法是传递包含值的容器。

static void makeAThree(Reference<Integer> ref){   ref.set(3);}public static void main(String[] args){  Reference<Integer> myInt = new Reference<>(4);  makeAThree(myInt);  System.out.println(myInt.get());}

由于在Java中,它 引用
到由值(对象本身是从来没有在全部通过)传递的对象,设置

ref
3
makeAThree
变化相同的对象则提到
myInt
main()

免责声明:

Reference
这不是您可以直接使用现成的Java的类。我在这里将其用作其他任何对象类型的占位符。这是一个非常简单的实现:

public class Reference<T> {    private T referent;    public Reference(T initialValue) {       referent = initialValue;    }    public void set(T newVal) {       referent = newVal;    }    public T get() {       return referent;    }}
编辑

这并不是说修改方法的参数是一个好习惯。通常,这将被视为副作用。通常,最佳做法是将方法的输出限制为返回值和

this
(如果该方法是实例方法)。修改参数是设计方法的一种非常“
C”的方式,并且不能很好地映射到面向对象的编程。



欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5428515.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-11
下一篇 2022-12-11

发表评论

登录后才能评论

评论列表(0条)

保存