问题标签 [nested-generics]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
103 浏览

java - 这个通用数组如何合法?

泛型数组的问题(即它们的不可能性)对我来说似乎是一个反复出现的主题。下面是一个HashMap数据结构的相关代码。显然,我不能声明 a Bucket[],因为泛型数组是不可能的。但是,我可以声明一个MapThing.Bucket[]. 当我断言这是一种好习惯时,我是否正确,因为即使MapThing.Bucket[]是原始类型声明,实际MapThing.Bucket[]实例也是由其封闭实例类型参数化的?

感谢您的任何见解!

克里斯

0 投票
2 回答
55 浏览

java - 从Java中泛型类中的嵌套泛型分配变量?

如果我有以下代码:

我有一个DummyClass<?> dummy

我可以

没有任何错误。

然而,

给出编译错误:

为线分配dummy.getListSet()

为什么我不能分配dummy.getListSet()给 a Set<List<?>>

0 投票
1 回答
676 浏览

java - 声明方法从声明类型返回泛型子类型

我正在尝试在工厂类中创建一个方法。子类型的返回必须与声明的参数类型相同。

方法声明有效,但是当我尝试使用时,该方法没有返回预期的类型。

这是一个说明我的问题的类:

foo 接口

foo 实现

FooParser

以及出现问题的地方

我正在使用 NetBeans IDE 8.1,但出现以下错误:

不兼容的类型:CAP#1 不能转换为 FooImpl,其中 CAP#1 是一个快速的类型变量 CAP#1 从捕获的 ?

有没有办法做这样的事情?

提前谢谢了

0 投票
0 回答
575 浏览

c# - 使用 Linq 过滤复杂对象

我需要根据这个复杂对象过滤一个 IEnumerable 列表。我需要对嵌套字典元素之一执行比较运算符。现在我在父对象上有一个 where 子句。如何构造 linq 扩展方法来过滤最内层字典中的关键元素之一?

0 投票
1 回答
50 浏览

java - java可以从泛型之上定义的类推断泛型类型吗?

我从另一个答案中借用了代码

我的问题与这段代码有关

正如IntToStringConverter实现IConverter<Integer, String>和类型是已知的IntegerStringjava没有推理系统来避免打字new ConverterUser<IntToStringConverter, Integer, String>()和打字new ConverterUser<IntToStringConverter>()吗?

0 投票
2 回答
75 浏览

java - 允许参数的泛型;或可参数化的泛型

我正在玩一个有趣的架构。人们可以制作包含 StoredObjects 的 Store。商店可以支持由接口表示的不同操作(即Get、Put、Print)。

这是它的样子,高度简化:

当我想实现类似的“get”方法时,问题就出现了。理想情况下,我想要一个如下所示的界面:

显然,这是畸形的java。是否有一些语法(或 hack)可以用来完成它的目的?实际上,我不想将常量类型指定为泛型参数,而是将可参数化类型指定为泛型参数(然后它本身将在 get 方法中参数化)。是的,这归结为 java 没有的更高种类的类型;如此疯狂 - 丑陋的黑客非常受欢迎!

由于其他设计限制而无法使用的常见解决方案:

  • 将 get/put/etc 操作移入内部Obj
  • 创建一些超类型Store.Obj<T>并指定要采用它的接口,而不是通用参数。
0 投票
1 回答
55 浏览

java - 从泛型推断类型

有什么方法可以推断出对象 O 的类型,如下例所示(不会编译):

所以在上面的例子LogSet中是通用的Owhere O extends LogObject。如果S extends LogSet,那么使用S是否可以推断出O用作logUpdated方法类型的类型?

是像这样明确地做到这一点的唯一方法:

我希望我的问题是有道理的。

0 投票
2 回答
287 浏览

swift - Nested function crashing the Swift compiler

I wrote a recursive mergeSort function:

Now, since merge() is only supposed to be used by mergeSort() I placed it inside of mergeSort(), therefore making merge() a nested function:

Now the first version works fine, but the second one doesn't.
How can that be?

0 投票
2 回答
68 浏览

java - 如何在类中使用扩展泛型类型的类型?

假设我有一些课程如下:

我如何将类型定义为varOfTypeTATB 的 TA 是什么?

我知道我可以将它定义为A varOfTypeTA,但我希望它是TAnot类型A

我尝试强制它定义 TAclass C<TB extends B<TA extends A>>以便我可以使用TA,但这会引发语法错误。

为了澄清,如果我然后定义这些类:

我怎样才能varOfTypeTA成为类型Horse

0 投票
4 回答
83 浏览

java - 如何创建条目具有通用字段的项目数组?

我有这个代码:

当我编译它时,我得到一个错误,说:

我试过:

但后来我收到一条错误消息:

是否可以创建该数组?