文档章节

Java之实现枚举原理

1527
 1527
发布于 2015/10/10 23:10
字数 116
阅读 12
收藏 0
public class EnumTest {

	public static void main(String[] args) {
		
		WeekDay weekDay = WeekDay.MON;
		System.out.println(weekDay.nextDay().toString());
	}
}


public class WeekDay {

	private WeekDay(){}
	
	public final static WeekDay SUN = new WeekDay();
	public final static WeekDay MON = new WeekDay();
	
	public WeekDay nextDay(){
		
		if(this==SUN){
			return MON;
		}else{
			return SUN;
		}
	}
	
	public String toString(){
		
		return this ==SUN?"SUN":"MON";
	}
}

另一种实现
public abstract class WeekDay {

	private WeekDay(){}
	
	public final static WeekDay SUN = new WeekDay(){
		
		public WeekDay nextDay(){
			return MON;
		}
	};
	public final static WeekDay MON = new WeekDay(){
		public WeekDay nextDay(){
			return SUN;
		}
	};
	
	public abstract WeekDay nextDay();
	
	public String toString(){
		
		return this ==SUN?"SUN":"MON";
	}
}


© 著作权归作者所有

共有 人打赏支持
上一篇: java枚举之简要
下一篇: java之可变参数
1527
粉丝 6
博文 103
码字总数 42935
作品 0
成都
程序员
私信 提问
枚举类型可以实现接口,以及枚举类型原理

今天在看 《漫谈设计模式》的时候,看到状态模式的时候,居然发现,枚举类型原来也是可以 实现接口的。 真是涨见识了。 而且 枚举类型的静态属性也是可以 实现方法的, 只是如果没有 实现接口...

之渊
07/24
0
0
Java中枚举的线程安全性及序列化问题

来源:微信公众号 ,原创: Hollis --枚举是如何保证线程安全的 要想看源码,首先得有一个类吧,那么枚举类型到底是什么类呢?是enum吗?答案很明显不是,enum就和class一样,只是一个关键字...

Java填坑之路
08/02
0
0
设计模式一: 单例模式(Singleton)

简介 单例模式是属于创建型模式的一种(另外两种分别是结构型模式,行为型模式).是设计模式中最为简单的一种. 英文单词Singleton的数学含义是"有且仅有一个元素的集合". 从实现层面看, 由类自身...

罪恶斯巴克
08/21
0
0
为什么我墙裂建议大家使用枚举来实现单例

我们知道,单例模式,一般有七种写法,那么这七种写法中,最好的是哪一种呢?为什么呢?本文就来抽丝剥茧一下。 哪种写单例的方式最好 在StakcOverflow中,有一个关于What is an efficient ...

冷_6986
06/13
0
0
为什么我墙裂建议大家使用枚举来实现单例。

关于单例模式,我的博客中有很多文章介绍过。作为23种设计模式中最为常用的设计模式,单例模式并没有想象的那么简单。因为在设计单例的时候要考虑很多问题,比如线程安全问题、序列化对单例的...

06/10
0
0

没有更多内容

加载失败,请刷新页面

加载更多

solr使用规范

0. 目的 规范solr设计、用法,避免bug,提高性能 1. 设计规范 solr的用途是查询,不是存储,建议查询结果尽量都为id主键,而后再拿该id主键到缓存或者db中再查询相关信息,例如:请勿将经销商...

andersChow
26分钟前
1
0
11-《深度拆解JVM》之Java对象的内存布局

一、问题引入 在 Java 程序中,我们拥有多种新建对象的方式。除了最为常见的 new 语句之外,我们还可以通过反射机制、Object.clone 方法、反序列化以及 Unsafe.allocateInstance 方法来新建对...

飞鱼说编程
31分钟前
1
0
Windows Install Docker

win7、win8 win7、win8 等需要利用 docker toolbox 来安装,国内可以使用阿里云的镜像来下载,下载地址:http://mirrors.aliyun.com/docker-toolbox/windows/docker-toolbox/ docker toolbox...

linuxprobe16
35分钟前
1
0
混合云环境中扩展Kubernetes的挑战及方案

流量突增时,我们需要扩展应用程序以满足用户需求。本文分享了扩展Kubernetes以及管理混合云环境时可能遇到的挑战,以及如何简单高效地完成Kubernetes扩展。 引 言 假设您的业务是在线的:您...

RancherLabs
43分钟前
1
0
Java集合小抄

Java集合小抄 1. List 1.1 ArrayList 以数组实现。节约空间,但是数组有容量限制。超出限制时会增加50%容量,用System.arraycopy()复制到新的数组。因此最好能给出数组大小的预估值。默认第一...

傅小水water
51分钟前
1
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部