问题描述
1、Result封装返回消息,用String接收message存在的问题;
2、服务层暴露一个接口供其它服务调用,比如根据用户id、订单状态查询订单数据,接口请求参数设置为 Integer userId, Integer status存在的问题;
作用
主要作用:规定某个类的实例只有哪一些可以在程序中使用,进一步可以约定方法参数取值范围,还可以约定类的行为只能有哪几种实现方式;
枚举是一种独特的Java类型
enum 定义的枚举类 默认继承 java.lang.Enum 类;
枚举的本质是 java.lang.Enum 的子类;
枚举实例实则都是枚举类的静态匿名内部类实例对象;
代码描述
模拟枚举类
/**
* @Author G_Y
* @Date 2020/6/10 10:25
* @Description: 模拟枚举类
**/
public abstract class LikeEnum {
public abstract void f();
private String message;
private LikeEnum(String message){
this.message = message;
}
public String getMessage() {
return message;
}
public static final LikeEnum A_BEAN = new LikeEnum("A_BEAN"){
@Override
public void f() {
System.out.println("第一种行为");
}
};
public static final LikeEnum B_BEAN = new LikeEnum("B_BEAN"){
@Override
public void f() {
System.out.println("第二种行为");
}
};
public static final LikeEnum C_BEAN = new LikeEnum("C_BEAN"){
@Override
public void f() {
System.out.println("第三种行为");
}
};
}
真实枚举类
/**
* @Author G_Y
* @Date 2020/6/10 10:47
* @Description: 枚举类
**/
public enum RealEnum {
A_BEAN("A_BEAN"){
@Override
public void f() {
System.out.println("第一种行为");
}
},
B_BEAN("B_BEAN"){
@Override
public void f() {
System.out.println("第二种行为");
}
},
C_BEAN("C_BEAN"){
@Override
public void f() {
System.out.println("第三种行为");
}
};
public abstract void f();
private String message;
private RealEnum(String message){
this.message = message;
}
public String getMessage() {
return message;
}
}
具体使用
public class Test {
public static void main(String[] args) {
new Test().testServicePro(RealEnum.A_BEAN);
}
public void testServicePro(RealEnum realEnum) {
// 执行一个动作
realEnum.f();
// 访问数据库 string
String message = realEnum.getMessage();
System.out.println(message);
}
}
封装结果提示消息
/**
* @Author G_Y
* @Date 2020/6/10 9:45
* @Description: 返回调用方的Result对象
**/
public class Result {
private String message;
private Integer code;
private Object data;
private Boolean success;
public Result(Object data, EResultCode eResultCode) {
this.data = data;
this.success = eResultCode.getSuccess();
this.code = eResultCode.getCode();
this.message = eResultCode.getMessage();
}
}
/**
* @Author G_Y
* @Date 2020/6/10 9:45
* @Description: 提示信息封装
**/
public enum EResultCode {
/**
* "操作成功",2000,Boolean.TRUE
*/
SUCCESSED("操作成功",2000,Boolean.TRUE),
/**
* "非法参数",5001,Boolean.FALSE
*/
ILLEGAL_PARAMETER("非法参数",5001,Boolean.FALSE);
private String message;
private Integer code;
private Boolean success;
private EResultCode(String message,Integer code,Boolean success){
this.code = code;
this.message = message;
this.success = success;
}
public String getMessage() {
return message;
}
public Integer getCode() {
return code;
}
public Boolean getSuccess() {
return success;
}
}







网友评论