java enum 定义属性_Java,Enum里定义属性和方法

最近的项目用到了大神写的统一返回码的代码:

ErrorCode.java

/**

* 统一6位, 异常码

* @author Administrator

*

*/

public enum ErrorCode {

//global

OK("000000","操作成功"),

ERROR("000001","操作异常"),

PASSWD_EMPTY("002007", "密码不能为空"),

PASSWORD_ERROR("002024", "您输入的密码不正确"),

;

@Getter

private String code;

@Getter

private String message;

public String getCode() {

return code;

}

public void setCode(String code) {

this.code = code;

}

ErrorCode(String code, String message) {

this.code = code;

this.message = message;

}

public static ErrorCode getSmsCode(String code){

for (ErrorCode otpCode : ErrorCode.values()) {

if(otpCode.getCode().equals(code))

return otpCode;

}

return ErrorCode.ERROR;

}

public String getMessage() {

return message;

}

public void setMessage(String message) {

this.message = message;

}

}

然后调用的代码大概是这样:

UserController.java

@RestController

@RequestMapping(value="user")

public class UserController {

@Autowired

private UserService userService;

@CrossOrigin

@RequestMapping(value="/login", method = RequestMethod.POST)

public Output login(String username, String password) {

return this.userService.login(username, password);

}

}

UserService.java

public interface UserService {

public Output login(String username, String password);

}

UserServiceImp.java

@Override

public Outputlogin(String username, String password) {

// TODO Auto-generated method stub

if () {//正常

return Output.ok();

} else {

return Output.ex(ErrorCode.PASSWORD_ERROR);

}

}

然后,最后的Output.java的代码:

package com.heque.minigame.common;

import com.fasterxml.jackson.annotation.JsonInclude;

import com.heque.minigame.common.ErrorCode;

import lombok.Data;

import lombok.experimental.Accessors;

/**

* 类 名:

* 说 明:

* 修 改 记 录:

* 版 权 所 有: Copyright © 2017

* 公 司:

* version 0.1

* date 2018/1/1

* author

*/

@Data

@Accessors

@JsonInclude(JsonInclude.Include.NON_NULL)

public class Outputimplements Out {

/**

* 状态码

*/

private String code;

/**

* 返回消息

*/

private String message;

/**

* 数据

*/

private T data;

/**

* 构造方法

*/

public Output() {

}

/**

* 构造方法

*

* @param code 状态码

*/

public Output(String code) {

this.code = code;

}

/**

* 构造方法

*

* @param code 状态码

* @param data 数据

*/

public Output(String code, T data) {

this.code = code;

this.data = data;

}

public Output(String code,String message) {

this.code = code;

this.message = message;

}

/**

* 处理成功

*

* @param data 数据

* @return 输出

*/

public static Outputok(T data) {

return new Output<>(ErrorCode.OK.getCode(), data);

}

public static Outputmessage(String code,String message) {

return new Output<>(code, message);

}

/**

* 处理成功

*

* @return 输出

*/

public static Outputok() {

return new Output<>(ErrorCode.OK.getCode());

}

/**

* 获取

*

* @param code 状态码

* @return 输出

*/

public static Outputex(ErrorCode code) {

return new Output<>(code.getCode(),code.getMessage());

}

/**

* 设置 数据

*

* @param data 数据

* @return 输出

*/

public OutputsetData(T data) {

this.data = data;

return this;

}

public T getData() {

return data;

}

/**

* 获取状态码

* @return

*/

public String getCode() {

return code;

}

/**

* 设置状态码

* @param code 状态码

*/

public void setCode(String code) {

this.code = code;

}

/**

* 获取消息

* @return

*/

public String getMessage() {

return message;

}

/**

* 设置消息

* @param message 消息

*/

public void setMessage(String message) {

this.message = message;

}

}

其中,让本菜不明白的是:

在UserServiceImp里只要传入一个Code,就可以让Code和Message对应起来。

后来,慢慢琢磨,才知道

ErrorCode(String code, String message) {

this.code = code;

this.message = message;

}

OK("000000","操作成功"),

ERROR("000001","操作异常"),

是有对应关系的。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值