1.定义 enum
/**
*
* 厂家信息
* @author ztd
* @version 1.0
* @created 2016年8月30日 上午11:26:08
*/
public enum Firm {
/** 厂家->AA */
AA((byte)1, "厂家->AA", 1),
/** 厂家-BB */
BB((byte)2, "厂家->BB", 2),
/** 厂家->CC */
CC((byte)3,"厂家->CC",3);
private byte byteVal;
private String name;
private int intValue;
private Firm(byte byteVal, String meaning, int intValue) {
this.byteVal = byteVal;
this.name = meaning;
this.intValue = intValue;
}
public byte byteVal() {
return this.byteVal;
}
public int intVal() {
return this.intValue;
}
public String getName() {
return this.name;
}
}
2.定义找不到的错误提示
/**
* 找不到对应厂家错误
* @author ztd
* @version 1.0
* @created 2016年8月31日 下午3:37:51
*/
public class FirmNotFoundException extends Exception {
/** 描述 */
private static final long serialVersionUID = 1L;
public FirmNotFoundException() {
super();
}
public FirmNotFoundException(String message, Throwable cause) {
super(message, cause);
}
public FirmNotFoundException(String message) {
super(message);
}
}
3.测试
public class GetFirm {
public static void main(String[] args) {
try {
System.out.println(getFrimById((byte)3));
System.out.println(getFrimById((byte)4));
} catch (FirmNotFoundException e) {
e.printStackTrace();
}
}
/**
* 获取厂家信息
* @param firm
* @return
* @throws FirmNotFoundException
*/
public static Firm getFrimById(byte firm) throws FirmNotFoundException {
Firm target = null;
for(Firm cmd : Firm.values()) {
if(cmd.byteVal() == firm) {
target = cmd;
break;
}
}
if(target == null) {
throw new FirmNotFoundException("找不到对应的厂家!", new Throwable("找不到厂家"));
}
return target;
}
}