ChunkResult.java

net.minecraft.server.level.ChunkResult

信息

  • 全限定名:net.minecraft.server.level.ChunkResult
  • 类型:public interface
  • 包:net.minecraft.server.level
  • 源码路径:src/main/java/net/minecraft/server/level/ChunkResult.java
  • 起始行号:L8
  • 职责:

    TODO

字段/常量

内部类/嵌套类型

  • net.minecraft.server.level.ChunkResult.Fail

    • 类型: record
    • 修饰符: public
    • 源码定位: L38
    • 说明:

      TODO

  • net.minecraft.server.level.ChunkResult.Success

    • 类型: record
    • 修饰符: public
    • 源码定位: L70
    • 说明:

      TODO

构造器

方法

下面的方法块按源码顺序生成。

static <T> ChunkResult<T> of(T value) @ L9

  • 方法名:of
  • 源码定位:L9
  • 返回类型: ChunkResult
  • 修饰符:static

参数:

  • value: T

说明:

TODO

static <T> ChunkResult<T> error(String error) @ L13

  • 方法名:error
  • 源码定位:L13
  • 返回类型: ChunkResult
  • 修饰符:static

参数:

  • error: String

说明:

TODO

static <T> ChunkResult<T> error(Supplier<String> errorSupplier) @ L17

  • 方法名:error
  • 源码定位:L17
  • 返回类型: ChunkResult
  • 修饰符:static

参数:

  • errorSupplier: Supplier

说明:

TODO

boolean isSuccess() @ L21

  • 方法名:isSuccess
  • 源码定位:L21
  • 返回类型:boolean
  • 修饰符:package-private

参数:

说明:

TODO

T orElse(T orElse) @ L23

  • 方法名:orElse
  • 源码定位:L23
  • 返回类型:T
  • 修饰符:package-private

参数:

  • orElse: T

说明:

TODO

static <R> R orElse(ChunkResult<?extends R> chunkResult, R orElse) @ L25

  • 方法名:orElse
  • 源码定位:L25
  • 返回类型: R
  • 修饰符:static

参数:

  • chunkResult: ChunkResult<?extends R>
  • orElse: R

说明:

TODO

String getError() @ L30

  • 方法名:getError
  • 源码定位:L30
  • 返回类型:String
  • 修饰符:package-private

参数:

说明:

TODO

ChunkResult<T> ifSuccess(Consumer<T> consumer) @ L32

  • 方法名:ifSuccess
  • 源码定位:L32
  • 返回类型:ChunkResult
  • 修饰符:package-private

参数:

  • consumer: Consumer

说明:

TODO

<R> ChunkResult<R> map(Function<T,R> map) @ L34

  • 方法名:map
  • 源码定位:L34
  • 返回类型: ChunkResult
  • 修饰符:package-private

参数:

  • map: Function<T,R>

说明:

TODO

<E extends Throwable> T orElseThrow(Supplier<E> exceptionSupplier) @ L36

  • 方法名:orElseThrow
  • 源码定位:L36
  • 返回类型: T
  • 修饰符:package-private

参数:

  • exceptionSupplier: Supplier

说明:

TODO

代码

public interface ChunkResult<T> {
    static <T> ChunkResult<T> of(T value) {
        return new ChunkResult.Success<>(value);
    }
 
    static <T> ChunkResult<T> error(String error) {
        return error(() -> error);
    }
 
    static <T> ChunkResult<T> error(Supplier<String> errorSupplier) {
        return new ChunkResult.Fail<>(errorSupplier);
    }
 
    boolean isSuccess();
 
    @Nullable T orElse(@Nullable T orElse);
 
    static <R> @Nullable R orElse(ChunkResult<? extends R> chunkResult, @Nullable R orElse) {
        R result = (R)chunkResult.orElse(null);
        return result != null ? result : orElse;
    }
 
    @Nullable String getError();
 
    ChunkResult<T> ifSuccess(Consumer<T> consumer);
 
    <R> ChunkResult<R> map(Function<T, R> map);
 
    <E extends Throwable> T orElseThrow(Supplier<E> exceptionSupplier) throws E;
 
    public record Fail<T>(Supplier<String> error) implements ChunkResult<T> {
        @Override
        public boolean isSuccess() {
            return false;
        }
 
        @Override
        public @Nullable T orElse(@Nullable T orElse) {
            return orElse;
        }
 
        @Override
        public String getError() {
            return this.error.get();
        }
 
        @Override
        public ChunkResult<T> ifSuccess(Consumer<T> consumer) {
            return this;
        }
 
        @Override
        public <R> ChunkResult<R> map(Function<T, R> map) {
            return new ChunkResult.Fail(this.error);
        }
 
        @Override
        public <E extends Throwable> T orElseThrow(Supplier<E> exceptionSupplier) throws E {
            throw exceptionSupplier.get();
        }
    }
 
    public record Success<T>(T value) implements ChunkResult<T> {
        @Override
        public boolean isSuccess() {
            return true;
        }
 
        @Override
        public T orElse(@Nullable T orElse) {
            return this.value;
        }
 
        @Override
        public @Nullable String getError() {
            return null;
        }
 
        @Override
        public ChunkResult<T> ifSuccess(Consumer<T> consumer) {
            consumer.accept(this.value);
            return this;
        }
 
        @Override
        public <R> ChunkResult<R> map(Function<T, R> map) {
            return new ChunkResult.Success<>(map.apply(this.value));
        }
 
        @Override
        public <E extends Throwable> T orElseThrow(Supplier<E> exceptionSupplier) throws E {
            return this.value;
        }
    }
}

引用的其他类