gpt4 book ai didi

java - Guava 的 TypeToken 文档中的 "free type variable"是什么?

转载 作者:行者123 更新时间:2023-11-30 03:19:54 30 4
gpt4 key购买 nike

我正在尝试创建一个带有类型键的Map。为了支持泛型类型,我需要像 Guava 的 TypeToken 这样的东西.

但是,我对构造函数文档中的一些术语感到困惑。例如第二个构造函数:

Constructs a new type token of T while resolving free type variables in the context of declaringClass.

什么是“自由类型变量”?什么是“声明类?”

最佳答案

In the class-level javadoc ,他们给出了该构造函数的使用示例

//                 free type variable
// v
abstract class IKnowMyType<T> {
TypeToken<T> type = new TypeToken<T>(getClass()) {};
}
new IKnowMyType<String>() {}.type => String

您通常无法获得 String 。但是,在这里,getClass返回一个匿名子类,其中有 IKnowMyType<String>作为它的父类(super class)。因此,您可以提取 String使用典型的类型 token hack:

Type superclass = getClass().getGenericSuperclass();
Type actualTypeArgument = ((ParameterizedType) superclass).getActualTypeArguments()[0];

关于java - Guava 的 TypeToken 文档中的 "free type variable"是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31574481/

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