gpt4 book ai didi

java - 当有多个参数时获取.class

转载 作者:行者123 更新时间:2023-12-01 10:57:29 26 4
gpt4 key购买 nike

    private Schema<Message<K, V>> messageSchema = RuntimeSchema.getSchema(Message.class);

如您所见,我正在使用一个需要消息类型类的函数。但是,我无法执行此操作,因为它需要多个参数。

之前,我尝试过使用:

private final Class<K, V> type;

public MessageClass(Class<K, V> type) {
this.type = type;
}

public Class<K, V> getMyType() {
return this.type;
}

然而,由于 Class 仅采用单个参数,它的表现一落千丈。

最佳答案

在设计采用类定义的 API 时,通常有两种选择:

  1. 接受裸类并且根本不支持参数化类型。此类库的用户将无法从完整的 Java 类型系统中受益,并且客户端代码将出现未经检查的警告并使用原始类型

  2. 声明Type参数和动态读取类型参数。此类库的用户将使用称为 type token 的习惯用法。通过Type向图书馆争论。演示代码

 RuntimeSchema.getSchema(new MyTypeToken<Message<String, Integer>>(){{}});

请注意new MyTypeToken<Message<String,Integer>>(){{}}是一种匿名类型,保留有关类型参数的信息,否则这些信息将被编译器删除并且在运行时不可用。

关于java - 当有多个参数时获取.class,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33553350/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com