【问题标题】:What is returned by Java when returning an enum value? A value or a reference?返回枚举值时Java返回什么?价值还是参考?
【发布时间】:2012-06-04 05:13:45
【问题描述】:

所以根据我对Java的理解,当你写

return value;

它实际上可能会返回以下两种情况之一:“value”的值或对“value”的引用,具体取决于“value”的类型。据我所知,如果 'value' 是原始数据类型,Java 返回 'value' 的值,如果 'value' 是抽象数据类型,如类,则 Java 返回对 'value' 的引用。

现在,我很好奇的是枚举返回的行为。如果“变量”是枚举类型,是否返回值或引用?

【问题讨论】:

  • 好吧,如果你想了解它的技术,它将返回引用的值,而不是引用本身。
  • 让我稍微宣传一下我的答案,以澄清 Jeffrey 指出的一些技术方面:stackoverflow.com/questions/40480/is-java-pass-by-reference/…,让我试着用这个问题让你有点困惑:如果 value 是 int[ ]?提示:Java 中只有 8 种原始数据类型...

标签: java enums return


【解决方案1】:

枚举不是原语。每个类加载器的每个枚举“值”都有一个唯一的对象实例。返回类型是对该唯一对象的引用。

【讨论】:

    【解决方案2】:

    任何Enum 都是扩展java.lang.Enum 的对象,因此您会得到一个引用。

    【讨论】:

    • 太好了,感谢您清除它! Google 在为我回答这个问题时出奇地狡猾。
    猜你喜欢
    • 2016-11-22
    • 2011-04-06
    • 1970-01-01
    • 2015-10-29
    • 1970-01-01
    • 1970-01-01
    • 2011-11-10
    • 2017-10-05
    • 2012-11-27
    相关资源
    最近更新 更多