您可以将重复的代码分解为一个
CodeableEnumHelper类:
public class CodeableEnumHelper { public static CodeableEnum getByCode(String pre, CodeableEnum[] values) { for (CodeableEnum e : values) { if (e.getCode().equalsIgnoreCase(pre)) { return e; } } return null; }}每个
CodeableEnum类仍然必须实现一个
getByCode方法,但是该方法的实际实现至少已集中到一个地方。
public enum IMType implements CodeableEnum { ... public IMType getByCode(String pre) { return (IMType)CodeableEnumHelper.getByCode(pre, this.values()); } }


