首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >为什么枚举不会导致无限的递归?

为什么枚举不会导致无限的递归?
EN

Stack Overflow用户
提问于 2019-06-19 00:24:34
回答 2查看 53关注 0票数 0

在java中,枚举声明如下:

代码语言:javascript
运行
AI代码解释
复制
enum Fruits{
BANANA,
ORANGE,
APPLE
}

在本例中,声明的枚举与类的类型相同。因此,当我创建枚举水果的实例时:

代码语言:javascript
运行
AI代码解释
复制
Fruits example = Fruits.ORANGE

这意味着创建了枚举水果的一个实例,然后为每个枚举创建实例。假设水果中的每个枚举都是水果的类型,它们会继续创建更多的实例……以此类推,导致无限递归。我是不是漏掉了什么?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2019-06-19 00:28:57

代码语言:javascript
运行
AI代码解释
复制
enum Fruits{
BANANA,
ORANGE,
APPLE
}

实际上等同于

代码语言:javascript
运行
AI代码解释
复制
class Fruits{
  static final Fruits BANANA = new Fruits("BANANA", 0);
  static final Fruits ORANGE = new Fruits("ORANGE", 1);
  static final Fruits APPLE = new Fruits("APPLE", 2);

  private Fruits(String name, int ordinal) {
    super(name, ordinal);
  }
}

再加点帮手的东西。尝试反编译一个枚举类(例如,使用javap),你可以看到它是这样的。

因此,当你写下:

代码语言:javascript
运行
AI代码解释
复制
Fruits example = Fruits.ORANGE

您并不是在创建类的新实例:您只是引用了一个静态字段。

票数 6
EN

Stack Overflow用户

发布于 2019-06-19 02:20:56

但请记住,因为它们是单例,所以更改一个类型字段的属性会更改该字段的所有“实例”。

代码语言:javascript
运行
AI代码解释
复制
    enum Fruit {
       APPLE, ORANGE;
       private String color = "red";

       public String getColor() {
          return color;
       }

       public void setColor(String color) {
          this.color = color;
       }
    }


    Fruit apple = Fruit.APPLE;
    Fruit otherApple = Fruit.APPLE;


    System.out.println(apple.getColor()); // prints red
    System.out.println(otherApple.getColor()); // prints red

    apple.setColor("green");  // change apples color

    System.out.println(pple.getColor());  // prints green
    System.out.println(otherApple.getColor()); // prints green
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56658600

复制
相关文章
容器停止后续操作 原
如果你的容器每次都是被kill -9的信号直接灭掉,可能你的数据或者系统就会有各种操蛋的事情,这里给出一个docker容器关闭时捕捉处理stop信号,更加合理处理你的应用退出逻辑的脚本
domain0
2018/08/01
5970
docker停止运行中的容器(docker关闭容器)
centos 启动一个容器添加了-d 参数,但是docker ps 或者docker ps -a查看却已经退出了
全栈程序员站长
2022/07/25
8.7K0
docker停止运行中的容器(docker关闭容器)
docker stop 或者 docker kill 不能停止容器
这几天在生产环境发现有几个容器一直不能正常的stop,或者rm 掉,而且查看docker daemon 日志里面会出现很多 msg="Container 5054f failed to exit within 10 seconds of<br/>signal 15 - using the force" 这样的报错,使用的命令为journalctl -xe -u docker 然后在短暂的时间内 docker ps查看到的容器还在运行中,过了一会没有了我们在创建的时候会提示这个容器已经存在(如果建立同样名称的容器)
张琳兮
2020/05/29
7.6K0
docker stop 或者 docker kill 不能停止容器
这几天在生产环境发现有几个容器一直不能正常的stop,或者rm 掉,而且查看docker daemon 日志里面会出现很多 msg="Container 5054f failed to exit within 10 seconds of<br/>signal 15 - using the force" 这样的报错,使用的命令为journalctl -xe -u docker 然后在短暂的时间内 docker ps查看到的容器还在运行中,过了一会没有了我们在创建的时候会提示这个容器已经存在(如果建立同样名称的容器)
张琳兮
2020/06/02
4.5K0
Docker修改已停止运行容器配置文件
基于Docker的Nginx服务中,笔者修改了Nginx的配置文件,结果重启容器时导致Nginx起不来,又不能使用 docker exec ...的方式进入容器修改配置文件。
肓己
2021/08/12
2K0
在奇点处爆发
你打开了电脑,Cortana推送给你今天最新的天气信息,地图app给你自动规划了最快的上班路线,这条路线避开了交通拥堵的路段。上班路上无聊地打开手机,Siri推送给你最新的资讯是:北京交警认为李彦宏驾驶百度研发的无人驾驶汽车上路属于违法行为;谷歌和微软在发布会上同时宣布,windows和安卓的时代已经过去了,他们未来的重点是人工智能(AI)。
iOSDevLog
2018/07/25
4240
在奇点处爆发
【容器TKE】K8s云服务如何实现容器优雅停止旧Pod容器服务?
以下为使用 Annotation 标明使用优雅停机示例,完整 Service Annotation 说明可参见 Service Annotation 说明。
TCS-F
2023/02/14
4.4K0
【容器TKE】K8s云服务如何实现容器优雅停止旧Pod容器服务?
Docker---(9)Docker中容器无法停止无法删除
问题:mysql容器如法停止,无法删除,也无法连接。docker stop,docker kill等命令都无效。
IT云清
2019/01/22
6.5K0
Docker stop或者Docker kill为何不能停止容器
我们内部压力(cpu 80%,内存90%)通过stress (做页面压力测试)在容器内部做测试中,发现某几个时候通过
Criss@陈磊
2019/08/02
4K0
Docker 那些事儿:如何安全地停止、删除容器?
在工作中,有时会需要将容器暂停,例如,要为容器文件系统做一个快照时。使用 docker pause 与 docker unpause 命令可以对容器进行暂停与激活操作,并且暂停状态的容器不会占用宿主机 CPU 资源。
我的小碗汤
2023/03/19
8.9K0
Docker 那些事儿:如何安全地停止、删除容器?
一笔画奇点偶点_一笔画图形奇点
当奇点为0个或者2个时(不可能为一个,奇点都是成对出现),可以被一笔画下来,反之则不能。
全栈程序员站长
2022/09/20
7920
一笔画奇点偶点_一笔画图形奇点
恐怖的奇点——论机器进化
英特尔中国研究院院长 吴甘沙 我相信奇点,但是采用一种预测(prediction)的态度,而非预报(forecasting),言之凿凿说2029或2045有点那个了。看人的智慧形成,也存在个奇点,在那
大数据文摘
2018/05/21
1.1K0
技术奇点或许永远不会临近
Toby Walsh  澳大利亚新南威尔士大学教授 翻译:李九喻、孟婷、柒少   来源:机器之心   如今,对人工智能 (AI) 感到悲观或乐观的都大有人在。乐观者正在向人工智能领域投资数百万美元甚至数十亿美元,而悲观者则预测人工智能将终结很多事:工作,战争,甚至人类。无论是乐观主义者还是悲观主义者都被所谓技术奇点 (technological singularity) 的概念吸引。技术奇点是一个机器智能失控的时间点,在它之后一个全新的、更加智慧的物种将开始居住在地球上。如果乐观主义者是正确的
腾讯研究院
2018/03/06
1.3K0
奇点来临:最终我们都会被取代
【新智元导读】人工智能近年取得的突破让劳动自动化得到了迅猛的发展。Get3DSmart.com 创始人和CEO John Hauer 在TechCrunch上撰文指出:自动化在各行各业悄然发展,机器有可能会一次性让所有的工作消失,也有可能逐步淘汰各种工作直到一个不剩。回到最开始的问题——哪些工作最终不会被机器取代? (文/John Hauer,Get3DSmart.com 创始人和CEO)前阵子我在玩Facebook时,偶然看到Jeremiah Owyang发了一条非常有趣的消息。他向人们发出挑战——“指出
新智元
2018/03/28
7210
奇点来临:最终我们都会被取代
如何使用不同的命令启动已经停止运行的 Docker 容器?
你好,我是征哥,我相信不少人都会遇到这样的问题,容器本来运行的好好的,可是有一天报错退出了,重启容器依然报错,因为默认命令会崩溃,这意味着我无法启动容器后使用 docker exec。
somenzz
2022/05/24
2.5K0
奇点已过?聊聊BERT之后的NLP时代
本文作者 吴金龙,爱因互动技术合伙人,算法负责人。本文转自知乎专栏“智能对话机器人技术”,欢迎大家关注。
AI研习社
2019/06/14
8230
奇点已过?聊聊BERT之后的NLP时代
mysql停止命令 停止mysql服务命令
如果没有将mysql注册为系统服务,那么我们可以使用MySQL为我们提供的一些工具来开启,关闭,重启mysql。当然,mysql服务脚本对mysql的操作也是调用这些工具来完成的。这些工具都在mysql的安装目录的bin目录中。贴个图:
it妹
2019/08/21
19.3K0
mysql停止命令 停止mysql服务命令
停止复用
文章起源于我对于模块化、微服务、Serverless 以及单体应用几种不同的架构模式的思考。而这其中的一个原因就是:人们经常从一个极端走另外一个极端。既然单体不好,那么我们就要 FAAS 来替换单体;既然模块化架构有各种问题,那么我们应该回到大单体。
Phodal
2020/06/30
2.1K0
奇点来临:最终我们都会被取代
人工智能近年取得的突破让劳动自动化得到了迅猛的发展。Get3DSmart.com 创始人和CEO John Hauer 在TechCrunch上撰文指出:自动化在各行各业悄然发展,机器有可能会一次性让所有的工作消失,也有可能逐步淘汰各种工作直到一个不剩。回到最开始的问题——哪些工作最终不会被机器取代?
IT阅读排行榜
2018/08/15
2800
奇点来临:最终我们都会被取代
各大宗教如何看待奇点来临?
转自|煎蛋 作者:王丢兜 奇点(singularity)——机器变得如此智能以致于人类再不能理解机器的想法的时刻——的概念早已深入硅谷内外的技术专家和未来学家。奇点被坚信者们如此热切的期待以致于保守主
大数据文摘
2018/05/21
9950

相似问题

无法构建可写奇点容器

1103

在奇点容器中运行MongoDB

14

在奇点容器中安装TinyTeX

220

奇点容器中的Jupyter Notebook

113

conda环境中的奇点容器

130
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文