【问题标题】:Passing primitive data by reference in Java [duplicate]在Java中通过引用传递原始数据[重复]
【发布时间】:2011-06-03 19:29:35
【问题描述】:

是否可以在java中将原始数据作为参数传递给方法,而不将它们包装到相应的类对象中???

【问题讨论】:

  • 只是有点迂腐,因为我完全理解你在问什么,在 Java 中没有任何东西是通过引用传递的,一切都是通过值传递的。

标签: java


【解决方案1】:

在 Java 中,不可能通过引用传递原语。要模拟这一点,您必须传递对可变包装类实例的引用。

有关可变包装类的更多信息,请参阅How do I pass a primitive data type by reference?

【讨论】:

    【解决方案2】:

    简答:不可能!!

    长答案:原始数据是按值传递而不是按引用传递,为什么?因为他们不是对象。

    “原始值不与其他原始值共享状态。” Oracle Official Tutorial

    但是,如果您仍然打算这样做,您可能想看看 Wrapper classes,每个原语都有其作为 Wrapper 的同源物

    如果您对何时使用原语或包装器有疑问,请查看“When to use primitive and when reference types in Java

    【讨论】:

      【解决方案3】:

      不要这样做,但既然你问了......你可以把它们放在 1 元素长度的数组中,然后传递数组。

      【讨论】:

      • 不会只修改数组的实际数据...我们可以更抽象地做吗??
      • 我见过的不切实际的答案。这就是为什么每个人都应该尝试阅读和学习书籍的原因!!!
      【解决方案4】:

      不,这在 Java 中是不可能的。

      【讨论】:

        猜你喜欢
        • 2017-01-27
        • 2013-05-16
        • 1970-01-01
        • 2011-05-18
        • 2011-08-28
        • 2013-10-31
        • 2020-06-11
        • 2011-04-09
        • 2021-10-26
        相关资源
        最近更新 更多