1. 先定义一个枚举接口
public interface ICommonEnum {
int VALUE = 0 ;
String NAME = null ;
int getValue ( ) ;
String getName ( ) ;
}
2. 公共枚举方法
public class EnumUtil {
public static < T extends ICommonEnum > T getEnum ( Class < T > tClass, String var ) {
for ( T t : tClass. getEnumConstants ( ) ) {
if ( String . valueOf ( t. getValue ( ) ) . equals ( var ) || t. getName ( ) . equals ( var ) ) {
return t;
}
}
return null ;
}
public static < T extends ICommonEnum > T getEnumByValue ( Class < T > tClass, int value) {
for ( T t : tClass. getEnumConstants ( ) ) {
if ( t. getValue ( ) == value) {
return t;
}
}
return null ;
}
public static < T extends ICommonEnum > T getEnumByName ( Class < T > tClass, String name) {
for ( T t : tClass. getEnumConstants ( ) ) {
if ( t. getName ( ) . equals ( name) ) {
return t;
}
}
return null ;
}
public static < T extends ICommonEnum > String getNameByValue ( Class < T > tClass, String var ) {
T t = getEnum ( tClass, var ) ;
if ( null != t) {
return t. getName ( ) ;
}
return String . valueOf ( var ) ;
}
public static < T extends ICommonEnum > String getNameByValue ( Class < T > tClass, int value) {
T t = getEnumByValue ( tClass, value) ;
if ( null != t) {
return t. getName ( ) ;
}
return String . valueOf ( value) ;
}
public static < T extends ICommonEnum > int getValueByName ( Class < T > tClass, String name) {
T t = getEnumByName ( tClass, name) ;
if ( null != t) {
return t. getValue ( ) ;
}
return 0 ;
}
3. 创建一个简单的枚举
@Getter
@AllArgsConstructor
public enum StatusEnum implements ICommonEnum {
DB_STATUS_DISABLE ( 0 , "禁用" ) ,
DB_STATUS_ENABLE ( 1 , "启用" ) ,
;
final int value;
final String name;
}
4. 如何使用
c. setStatus ( EnumUtil . getNameByValue ( StatusEnum . class , c. getStatus ( ) ) ) ;