Class Either.Right<L,R>

java.lang.Object
cloud.opencode.base.functional.monad.Either.Right<L,R>
Type Parameters:
L - left type - 左类型
R - right type - 右类型
All Implemented Interfaces:
Either<L,R>
Enclosing interface:
Either<L,R>

public static final class Either.Right<L,R> extends Object implements Either<L,R>
Right - Represents the right case (typically success) Right - 表示右情况(通常为成功)
Since:
JDK 25, opencode-base-functional V1.0.0
Author:
Leon Soo www.LeonSoo.com
  • Constructor Details

    • Right

      public Right(R value)
  • Method Details

    • value

      public R value()
      Get the right value 获取右值
      Returns:
      the right value - 右值
    • isLeft

      public boolean isLeft()
      Description copied from interface: Either
      Check if this is a Left 检查是否为 Left
      Specified by:
      isLeft in interface Either<L,R>
      Returns:
      true if Left - 如果是 Left 返回 true
    • isRight

      public boolean isRight()
      Description copied from interface: Either
      Check if this is a Right 检查是否为 Right
      Specified by:
      isRight in interface Either<L,R>
      Returns:
      true if Right - 如果是 Right 返回 true
    • getLeft

      public Optional<L> getLeft()
      Description copied from interface: Either
      Get the Left value if present 获取 Left 值(如果存在)
      Specified by:
      getLeft in interface Either<L,R>
      Returns:
      Optional containing Left value
    • getRight

      public Optional<R> getRight()
      Description copied from interface: Either
      Get the Right value if present 获取 Right 值(如果存在)
      Specified by:
      getRight in interface Either<L,R>
      Returns:
      Optional containing Right value
    • map

      public <U> Either<L,U> map(Function<? super R, ? extends U> mapper)
      Description copied from interface: Either
      Transform the Right value 转换 Right 值
      Specified by:
      map in interface Either<L,R>
      Type Parameters:
      U - result type - 结果类型
      Parameters:
      mapper - transformation function - 转换函数
      Returns:
      transformed Either
    • flatMap

      public <U> Either<L,U> flatMap(Function<? super R, Either<L,U>> mapper)
      Description copied from interface: Either
      Transform the Right value to another Either 将 Right 值转换为另一个 Either
      Specified by:
      flatMap in interface Either<L,R>
      Type Parameters:
      U - result type - 结果类型
      Parameters:
      mapper - transformation function returning Either - 返回 Either 的转换函数
      Returns:
      resulting Either
    • mapLeft

      public <U> Either<U,R> mapLeft(Function<? super L, ? extends U> mapper)
      Description copied from interface: Either
      Transform the Left value 转换 Left 值
      Specified by:
      mapLeft in interface Either<L,R>
      Type Parameters:
      U - result type - 结果类型
      Parameters:
      mapper - transformation function - 转换函数
      Returns:
      transformed Either
    • bimap

      public <L2,R2> Either<L2,R2> bimap(Function<? super L, ? extends L2> leftMapper, Function<? super R, ? extends R2> rightMapper)
      Description copied from interface: Either
      Transform both sides 转换两侧的值
      Specified by:
      bimap in interface Either<L,R>
      Type Parameters:
      L2 - new left type - 新的左类型
      R2 - new right type - 新的右类型
      Parameters:
      leftMapper - transformation for Left - Left 的转换函数
      rightMapper - transformation for Right - Right 的转换函数
      Returns:
      transformed Either
    • getOrElse

      public R getOrElse(R defaultValue)
      Description copied from interface: Either
      Get Right value or default if Left 获取 Right 值或默认值(如果是 Left)
      Specified by:
      getOrElse in interface Either<L,R>
      Parameters:
      defaultValue - default value - 默认值
      Returns:
      Right value or default
    • orElse

      public Either<L,R> orElse(Either<L,R> other)
      Description copied from interface: Either
      Return this or other Either if Left 返回本 Either 或其他 Either(如果是 Left)
      Specified by:
      orElse in interface Either<L,R>
      Parameters:
      other - alternative Either - 备选 Either
      Returns:
      this if Right, other if Left
    • fold

      public <T> T fold(Function<? super L, ? extends T> leftMapper, Function<? super R, ? extends T> rightMapper)
      Description copied from interface: Either
      Fold both cases to a single result 将两种情况折叠为单一结果
      Specified by:
      fold in interface Either<L,R>
      Type Parameters:
      T - result type - 结果类型
      Parameters:
      leftMapper - function for Left - Left 的函数
      rightMapper - function for Right - Right 的函数
      Returns:
      folded result
    • swap

      public Either<R,L> swap()
      Description copied from interface: Either
      Swap Left and Right 交换 Left 和 Right
      Specified by:
      swap in interface Either<L,R>
      Returns:
      swapped Either
    • peek

      public Either<L,R> peek(Consumer<? super R> action)
      Description copied from interface: Either
      Execute action on Right value 对 Right 值执行操作
      Specified by:
      peek in interface Either<L,R>
      Parameters:
      action - action to execute - 要执行的操作
      Returns:
      this Either for chaining
    • peekLeft

      public Either<L,R> peekLeft(Consumer<? super L> action)
      Description copied from interface: Either
      Execute action on Left value 对 Left 值执行操作
      Specified by:
      peekLeft in interface Either<L,R>
      Parameters:
      action - action to execute - 要执行的操作
      Returns:
      this Either for chaining
    • toTry

      public Try<R> toTry()
      Description copied from interface: Either
      Convert to Try: Right becomes Success, Left becomes Failure. 转换为 Try:Right 变为 Success,Left 变为 Failure。

      For Left: if the value is a Throwable, it is used directly; otherwise an OpenFunctionalException wrapping it is created.

      对于 Left:如果值是 Throwable,则直接使用; 否则创建包装它的 OpenFunctionalException。

      Specified by:
      toTry in interface Either<L,R>
      Returns:
      Try containing the Right value or the Left error | 包含 Right 值或 Left 错误的 Try
    • 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