当前位置: 首页 > 知识库问答 >
问题:

为什么不能泛化参数类?

史同化
2023-03-14

定义参数化类时,只能使用固定数量的参数。

class Container<T> {
    ...
}

但是,如果你想创建一个包含多个值的地图。必须使用映射

class Map<K, V, ...> {
    ...
}

共有1个答案

许自强
2023-03-14

如果实现了一个包含3个元素的Tuple类,那么就可以。

class Tuple3<T1, T2, T3> {
    private final T1 t1;
    private final T2 t2;
    private final T3 t3;

    // constructor, getters, ...
}

然后您可以使用它:

Map<K, Tuple3<V1, V2, V3>>

支持多种类型的值不是Map的责任。有关该主题的更多信息,请参阅关注点分离(SoC)。

 类似资料:
  • 问题内容: 我正在使用泛型编写某些东西,令我惊讶的是,我发现这行不通: 那我不能实例化泛型吗?没有任何方法可以做到这一点吗? 问题答案: 是的,这真是令人讨厌。 我使用的解决方法是强制客户端在构造新类时传递类-即 然后您可以使用。

  • 问题内容: 在下面的示例中,为什么编译器能够为in中的第一次调用推断出通用参数,而在第二次调用中却无法推断出通用参数?我正在使用Java 6。 (编译错误为 Nonsense.Bar类型的func(Nonsense.Foo)方法不适用于参数(Nonsense.Foo) )。 注意:我了解编译器错误可以通过test()中的第三行来解决-我很好奇是否存在阻止编译器推断类型的特定限制。这 似乎 对我有足

  • 问题内容: 我有一个通用的抽象模板类。我以为如果创建特定于类型的生产者,则可以直接在通用类中注入一些DAO服务。但是我不能。 为什么?我该如何解决? 当我注入一个例如它完美地工作。但是没有泛型… 问题答案: 当您要求 容器知道您要一个类型为的bean 。如果存在这样的bean并且其类型信息已知,则容器可以满足注入。例如,类型信息保留在带注释的方法中 容器使用反射来检索该参数化的类型,并将其与请求的

  • 所以我有那个代码,我是通过上传到Imgur v3使用Javahttps错误得到的,我在第50行得到一个错误,因为“列表”告诉我 类型列表不是泛型的;它不能用参数参数化 我能做些什么来解决这个问题? 我正在使用http://hc.apache.org/httpclient-3.x/并希望使用v3 API将图像上传到imgur。 编辑:更改导入后,我现在收到这些错误。 这就解决了这个问题,但又给了我两

  • 我有一个HashMap类型的对象 下面是一个例子:

  • 谁能告诉我为什么函数参数不能是?这是函数参数在上声明并在函数返回时被取消分配的原因吗?没有办法保留参数值?只是糊涂了。请澄清。 多谢了。