Enum类型

	public enum CacheTime {
		DEFAULT_WIFI(60), DEFAULT_MOBILE(6 * 60), NO_EXPIRED_ALL(365 * 24 * 60);
		public final long value;
		public static final int MINUE = 1000 * 60;

		private CacheTime(long s) {
			this.value = s * MINUE;
		}
	}

引用时:

CacheTime.DEFAULT_WIFI.value;

关于枚举类型:每一个枚举类型隐式继承自java.lang.Enum,由于Java不支持多重继承,所以枚举类型不能再继承其它类。

说说上面的代码吧。定义了一个缓存有效时间的枚举类。构造函数是私有的。

DEFAULT_WIFI等都是枚举类型,后面的参数是干什么用的?

构造用的,调用私有的CacheTime(long s)构造方法,初始化。所以,每一个枚举类型在其它地方使用的时候,可以直接用CacheTime.DEFAULT_WIFT.value.

这些enum type都包含了变量value,MINUE,而且都继承了Enum类,可以调用Enum类中的公有方法。


关于枚举类的构造方法:必须是私有(private)或者包级私有(default)。不可以手动调用其构造方法。


Oracle的tutorial:

http://docs.oracle.com/javase/tutorial/java/javaOO/enum.html

原文地址:https://www.cnblogs.com/ameryzhu/p/6555628.html