JsonEventLogReader.java

net.minecraft.util.eventlog.JsonEventLogReader

信息

  • 全限定名:net.minecraft.util.eventlog.JsonEventLogReader
  • 类型:public interface
  • 包:net.minecraft.util.eventlog
  • 源码路径:src/main/java/net/minecraft/util/eventlog/JsonEventLogReader.java
  • 起始行号:L16
  • 继承:Closeable
  • 职责:

    TODO

字段/常量

内部类/嵌套类型

构造器

方法

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

static <T> JsonEventLogReader<T> create(Codec<T> codec, Reader reader) @ L17

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

参数:

  • codec: Codec
  • reader: Reader

说明:

TODO

T next() @ L44

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

参数:

说明:

TODO

代码

public interface JsonEventLogReader<T> extends Closeable {
    static <T> JsonEventLogReader<T> create(Codec<T> codec, Reader reader) {
        final JsonReader jsonReader = new JsonReader(reader);
        jsonReader.setStrictness(Strictness.LENIENT);
        return new JsonEventLogReader<T>() {
            @Override
            public @Nullable T next() throws IOException {
                try {
                    if (!jsonReader.hasNext()) {
                        return null;
                    } else {
                        JsonElement json = JsonParser.parseReader(jsonReader);
                        return codec.parse(JsonOps.INSTANCE, json).getOrThrow(IOException::new);
                    }
                } catch (JsonParseException var2) {
                    throw new IOException(var2);
                } catch (EOFException var3) {
                    return null;
                }
            }
 
            @Override
            public void close() throws IOException {
                jsonReader.close();
            }
        };
    }
 
    @Nullable T next() throws IOException;
}

引用的其他类