java使用枚举类统一返回值result

文章介绍了如何在Java中创建一个Result类来封装返回结果,包括状态码、消息和数据字段。同时,定义了一个枚举类ResultCodeEnum,包含不同的状态码和对应的消息,用于方便地管理和返回操作状态。

java使用枚举类统一返回值result

编写Result类

public class Result<T> {
    private Integer code;
    private String msg;
    private T data;

    public Result(Integer code, String msg, T data) {
        this.code = code;
        this.msg = msg;
        this.data = data;
    }
 
    public Integer getCode() {
        return code;
    }
 
    public void setCode(Integer code) {
        this.code = code;
    }
 
    public String getMsg() {
        return msg;
    }
 
    public void setMsg(String msg) {
        this.msg = msg;
    }
 
    public T getData() {
        return data;
    }
 
    public void setData(T data) {
        this.data = data;
    }
 
    @Override
    public String toString() {
        return "Result{" +
                "code=" + code +
                ", msg='" + msg + '\'' +
                ", data=" + data +
                '}';
    }
}

创建枚举类ResultCode

public enum ResultCodeEnum {

    SUCCESS(200,"操作成功"),
    ERROR(201,"操作失败"),
    SEARCH_ERROR(202,"查询异常"),
    CHECK_ERROR(400,"校验异常"),
    OPERATION_ERROR(500,"请联系开发人员")



    ;

    /**
     * 返回的状态码
     */
    private int code ;

    /**
     * 返回状态码对应的信息
     */
    private String msg;

    ResultCodeEnum(int code, String msg) {
        this.code = code;
        this.msg = msg;
    }

    public int getCode() {
        return code;
    }

    public String getMsg() {
        return msg;
    }

    public static ResultCodeEnum find(int code){
        for (ResultCodeEnum resultCodeEnum : ResultCodeEnum.values()) {
            if(resultCodeEnum.getCode() == code){
                return resultCodeEnum;
            }
        }
        return null;
    }

    public static void main(String[] args) {
        System.out.println(find(201).getMsg());
    }
}

### Java 方法返回值相关问题及解决方法 在 Java 编程中,方法的返回值开发者经常需要关注的一个重要方面。理解返回值的机制以及如何处理返回值类型不匹配的问题,对于编写健壮和高效的代码至关重要。 #### 方法返回值类型的隐式转换 在 Java 中,方法声明的返回值类型与实际返回值的类型可以不同,只要实际返回值能够隐式转换为声明的返回值类型。例如,当方法声明返回值类型为 `double`,而实际返回值是 `int` 类型时,Java 编译器会自动将 `int` 类型转换为 `double` 类型。这种自动转换被称为**隐式类型转换**。然而,如果实际返回值是 `double` 类型,而方法声明返回值类型为 `int`,则无法进行隐式转换,编译器会报错[^2]。 #### 多返回值问题的解决方法 Java 语言本身并不支持多返回值,但可以通过以下几种方式来实现类似的功能: 1. **使用定义对象返回**:通过定义一个包含多个字段的类,可以在方法中返回一个对象,该对象包含多个值。 2. **使用数组**:可以返回一个数组,数组中的每个元素代表一个返回值。 3. **使用集合类**:如 `List` 或 `Map` 等集合类,也可以用来返回多个值。 4. **使用引用传递**:通过传递对象的引用,可以在方法内部修改对象的状态,从而达到返回多个值的效果。 5. **使用枚举**:虽然不常见,但在某些特定场景下,枚举也可以用来返回多个值。 6. **使用第三方库**:如 Apache Commons Lang 提供的 `Pair` 或 `Triple` 类,可以方便地返回两个或三个值[^3]。 #### 示例代码:使用定义对象返回多个值 ```java public class Result { private int value1; private String value2; public Result(int value1, String value2) { this.value1 = value1; this.value2 = value2; } // Getters and setters public int getValue1() { return value1; } public String getValue2() { return value2; } } public class Example { public static Result calculateValues() { int result1 = 42; String result2 = "Answer"; return new Result(result1, result2); } public static void main(String[] args) { Result result = calculateValues(); System.out.println("Value1: " + result.getValue1()); System.out.println("Value2: " + result.getValue2()); } } ``` #### 中文乱码问题的解决方法 在处理服务器端返回值时,可能会遇到中文乱码问题。解决方法之一是确保在解析返回值时指定正确的字符编码。例如,在处理 CAS 服务器返回的中文字符时,可以通过在构造方法中增加 `encoding` 参数,并在创建 `TicketValidator` 时指定编码为 `UTF-8` 来解决乱码问题[^4]。 ###
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值