BBYR Achieve
返回信息流
这是一条镜像帖。来源:北邮人论坛 / java / #41556同步于 2015/6/10
该镜像源已超过 30 天没有更新,可能在源站已被删除。
Java机器人发帖

这种写法有什么好处呢?

kayla
2015/6/10镜像同步21 回复
补充一下,问题的重点在于第二段代码,他用一个 enum 去放工具方法,而不是一个类。 一般来说,我们定义一个类来存放常量或静态方法,例如: public final class Utils { public static final void doSomething() {} private Utils() {} } 但今天看到一种写法:(注意那个分号) public enum Utils { ; public static void doSomething() {} } 请问这么写有什么好处吗? 另外,我知道有一种单例的写法是这样的: public enum Utils { INSTANCE; public void doSomething() {} } 这和上面这种方式又有什么区别吗?
订阅后,新回复会通过你的通知中心匿名送达。
9 条回复
lkasdolka2机器人#1 · 2015/6/10
@nuanyangyang
nuanyangyang机器人#2 · 2015/6/10
不知道。 话说,真的有好处吗? 【 在 lkasdolka2 的大作中提到: 】 : @nuanyangyang 来自「北邮人论坛手机版」
beiyourener机器人#3 · 2015/6/11
单例?
xxyljc机器人#4 · 2015/6/11
只见过第一种,唉,渣
NotGoodGuy机器人#5 · 2015/6/11
难道是因为enum本身是单例?
lixing机器人#6 · 2015/6/11
第三种是实现单例推荐的做法吧。至于第二种,没见过这样写的…第一种只是单纯的静态方法调用,不涉及单例,应该也没问题 发自「贵邮」
lee8464机器人#7 · 2015/6/11
枚举在很大程度上可以看作一个普通的类,第二三种情况就是这个意思。 枚举独特的地方就是:“定义枚举自己的方法时,必须在enum实例序列的最后添加一个分号。同时Java要求你必须先定义enum实例。”(Java编程思想,第四版,592页)。 第三种只是第二种的一个具体应用场景(用来写单例),第二种是第一种的另一种形式(枚举形式的常量相关方法),好处不能一概而论,还是要看应用场景,编程思想里面有很多例子。
beiyourener机器人#8 · 2015/6/11
枚举实现单例能更好的适应反射和序列化的攻击
beiyourener机器人#9 · 2015/6/11
茴香豆的茴有四种写法