Class PlatformResult<T>

java.lang.Object
io.github.theword.queqiao.core.platform.PlatformResult<T>
Type Parameters:
T - 成功时的数据类型;无数据时用 Void

public final class PlatformResult<T> extends Object
平台操作的统一结果

把"平台侧发生了什么"用一种不依赖协议层的方式表达出来:

 PlatformContext → PlatformResult<T> → Api → Protocol Response / ProtocolException
 

边界(重要):本类不依赖 Api、Response、 ProtocolException 或 WebSocket,也不持有 HTTP-like 状态码。 把 PlatformResultCode 翻译成协议状态是 Api 层的职责。

因此其它模块(命令层、未来的非协议调用方)也可以直接调用 PlatformContext 并消费本类型,完全不需要经过 Api / WebSocket。

不可变:三个字段均为 final,可安全地在多线程之间传递。

为什么不使用 record:本模块以 release = 8 编译(需支持到 1.7.10), record 是 Java 16+ 语法,无法使用。访问器沿用项目的 getter 风格。

Since:
0.7.0
  • Method Details

    • success

      public static <T> PlatformResult<T> success(T data)
      构造成功结果
      Type Parameters:
      T - 数据类型
      Parameters:
      data - 成功数据,允许为 null(Void 场景)
      Returns:
      成功结果
    • success

      public static <T> PlatformResult<T> success(T data, String message)
      构造带说明的成功结果
      Type Parameters:
      T - 数据类型
      Parameters:
      data - 成功数据,允许为 null
      message - 说明信息,可为 null
      Returns:
      成功结果
    • failure

      public static <T> PlatformResult<T> failure(PlatformResultCode code, String message)
      构造失败结果
      Type Parameters:
      T - 数据类型(失败时 data 恒为 null)
      Parameters:
      code - 失败结果码,不得为 null 且不应为 PlatformResultCode.SUCCESS
      message - 失败说明,可为 null
      Returns:
      失败结果
    • getCode

      public PlatformResultCode getCode()
      Returns:
      结果码
    • getMessage

      public String getMessage()
      Returns:
      说明信息,可为 null
    • getData

      public T getData()
      Returns:
      成功数据;失败时为 null
    • isSuccess

      public boolean isSuccess()
      Returns:
      是否成功
    • equals

      public boolean equals(Object o)
      Overrides:
      equals in class Object
    • hashCode

      public int hashCode()
      Overrides:
      hashCode in class Object
    • toString

      public String toString()
      Overrides:
      toString in class Object