Result.java 2.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283
  1. package com.alvin.common.entity;
  2. import lombok.AllArgsConstructor;
  3. import lombok.Data;
  4. import lombok.NoArgsConstructor;
  5. import java.io.Serializable;
  6. /**
  7. * @Description
  8. * @Author 田云
  9. * @Date 2020/5/1 20:54
  10. * @Version 1.0
  11. */
  12. @Data
  13. @NoArgsConstructor
  14. @AllArgsConstructor
  15. public class Result<T> implements Serializable {
  16. private boolean success;
  17. private Integer code;
  18. private String message;
  19. private T data;
  20. public static <T> Result<T> result(Boolean flag, ResultCode resultCode, T data) {
  21. return new Result<>(flag, resultCode.getCode(), resultCode.getMessage(), data);
  22. }
  23. //region success封装
  24. public static <T> Result<T> success(ResultCode resultCode, T data) {
  25. return result(true, resultCode, data);
  26. }
  27. public static <T> Result<T> success(T data) {
  28. return success(ResultCode.SUCCESS, data);
  29. }
  30. public static <T> Result<T> success() {
  31. return success(null);
  32. }
  33. //endregion
  34. //region failure封装
  35. public static <T> Result<T> failure(Integer code, String message) {
  36. return new Result<>(false, code, message, null);
  37. }
  38. public static <T> Result<T> failure(ResultCode resultCode) {
  39. return new Result<>(false, resultCode.getCode(), resultCode.getMessage(), null);
  40. }
  41. public static <T> Result<T> failure() {
  42. return failure(ResultCode.FAIL);
  43. }
  44. //endregion
  45. public static <T> Result<T> byObject(T t) {
  46. return byObject(t,ResultCode.UNKNOWN);
  47. }
  48. /**
  49. * 通过对象输出结果
  50. * 当对象为 true 或者不为 null 的时候返回正常
  51. *
  52. * @param t t
  53. * @param resultCode 结果代码
  54. * @return {@link Result<T>}
  55. */
  56. public static <T> Result<T> byObject(T t, ResultCode resultCode) {
  57. if (t instanceof Boolean) {
  58. if ((Boolean) t) {
  59. return Result.success();
  60. }
  61. } else if (t != null) {
  62. return Result.success(t);
  63. }
  64. return Result.failure(resultCode);
  65. }
  66. public static void main(String[] args) {
  67. System.out.println(Result.byObject(null, ResultCode.UNKNOWN));
  68. System.out.println(Result.byObject(false, ResultCode.UNKNOWN));
  69. }
  70. }