⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 enum.java

📁 j2me is based on j2mepolish, client & server for mobile application. menu sample
💻 JAVA
字号:
package de.enough.polish.java5;

import java.util.Hashtable;


/**
 * A version of the 1.5 java.lang.Enum class for the Java ME VM.
 */
public class Enum {

	private final int ordinal;

	private final String name;

	private static final Hashtable enumValues = new Hashtable();

	protected Enum(String name, int ordinal) {
		this.name = name;
		this.ordinal = ordinal;
	}

	protected static final void setEnumValues(Object[] values, Class c) {
		synchronized(enumValues) {
			enumValues.put(c, values);
		}
	}

	protected static final Object[] getEnumValues(Class class_) {
		synchronized(enumValues) {
			Object[] values = (Object[]) enumValues.get(class_);
			if (values != null)
				return values;
		}

//		if (!(class_ Enum))
//			return null;

		// force initialization of class_ as
		// class loader may not have called static initializers yet
//		try {
//			Class.forName(class_.getName(), true, class_.getClassLoader());
//		} catch (ClassNotFoundException e) {
//			// can not happen: class_ has already been resolved.
//		}
	
		synchronized(enumValues) {
			return (Object[]) enumValues.get(class_);
		}
	}


	public static Enum valueOf(Class enumType, String name) {

		if (enumType == null) {
			throw new NullPointerException("enumType is null");
		}

		if (name == null) {
			throw new NullPointerException("name is null");
		}

		Object[] enums = getEnumValues(enumType);

		if (enums != null) {
			for (int i = 0; i < enums.length; i++) {
				Enum enum_ = (Enum) enums[i];
				if (enum_.name.equals(name)) {
					return enum_;
				}
			}
		}

		throw new IllegalArgumentException("No enum const " + enumType + "."
				+ name);
	}

	public final boolean equals(Object other) {
		return other == this;
	}

	public final int hashCode() {
		return System.identityHashCode(this);
	}

	public String toString() {
		return this.name;
	}

	public final int compareTo(Enum e) {
		Class c1 = getDeclaringClass();
		Class c2 = e.getDeclaringClass();

		if (c1 == c2) {
			return this.ordinal - e.ordinal;
		}

		throw new ClassCastException();
	}


	public final String name() {
		return this.name;
	}

	public final int ordinal() {
		return this.ordinal;
	}

	public final Class getDeclaringClass() {
		return getClass();
//		Class clazz = getClass();
//		Class superClass = clazz.getSuperclass();
//		if (superClass != Enum_.class) {
//			return superClass;
//		} else {
//			return clazz;
//		}
	}
	
	public Object clone() {
		return this;
	}

}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -