问题标签 [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.
java - 具有另一个泛型类作为参数的泛型类
我发现自己在使用泛型时遇到了一种奇怪的情况,到目前为止这似乎是不可能的。我尝试在简单的类中隔离这种情况。我试图完成的是:一个调度句柄来处理数据包的服务类。每个处理程序都有一个数据包类型参数,因为每个数据包都应该有一个处理程序。服务类也有一个 Handler 类型参数,因为有几种类型的处理程序,因此不同的处理程序类型需要几个服务。这个描述可能不是很清楚,所以这里是我做的例子:
有没有办法完成这样的事情,或者有什么建议?谢谢
编辑:这是来自 manouti 答案的修改后的代码(注意:为了清楚起见,我将 SomePacket 更改为 PacketOne)。我遇到的问题是创建 ServiceImpl 的实例。
c# - 为什么这个泛型类没有选择泛型方法提供的类型?
考虑以下静态泛型方法:
我可以像下面这样简单地调用它,并且 T 将被暗示为Button
来自传入的参数:
但是,对于以下泛型类...
此代码不会编译。
相反,我必须像这样显式地提供类型。
我认为T
提供的论点会暗示,但似乎并非如此。
我怀疑原因是因为没有类Laa
——该类实际上是——Laa<Button>
所以它不知道要构造什么,但这只是一个猜测。
即便如此,编译器是否没有足够的信息来解决这个问题?没有类Laa
,但有一个泛型Laa<T>
可以满足提供的参数。
c# - c#中如何动态选择要调用的泛型函数的类型
在 C# 中,我有一些通用函数。我有一个动态对象列表,我想用它调用正确类型的函数
它在简单的情况下工作,但一旦嵌套模板就不会编译。
如何使其在嵌套模板案例中工作?
java - Java - 使用类型参数初始化类的问题
我在使用类型参数初始化类时遇到问题。这似乎是 Java 类型推断的一个缺点,我想知道是否有解决方法或更好的方法来实现这一点。
编译时错误在BusinessLogic::someLogic()
:
构造函数 Service<ChildModel, ArrayList<ChildModel>>(Class<ChildModel>, Class<ArrayList>) 未定义
编译为 Java 7。
java - 嵌套通配符泛型变量影响
给定以下 Java 代码:
在Test
类的主要方法中,将接收结果的变量的正确类型是f.construct()
什么?这种类型应该类似于我正在寻找的A<B<...>>
地方。...
上面有 3 行注释的代码代表了我解决这个问题的尝试。第一行和第二行无效。第三个是,但我丢失了B
类型信息,我必须强制转换a.getT()
。
java - Java - 将类扩展为接口/抽象方法的返回类型
我试图找到一种方法来创建一个接口/抽象方法,并将声明/扩展类作为返回类型。(例如classA 扩展了interfaceA,并且该方法应该返回一个ClassA 对象)。
现在我发现一些帖子编译器不会抱怨这样的事情,但是 JVM 无法处理这样的事情,这意味着这个机制在 java 中不存在。
所以我想出了以下想法,我不知道它在技术上是否足够节省。(例如它会导致循环)
这意味着您可以以这种方式使用它。虽然这不会强制外部用户使用扩展类,但如果愿意,它至少提供了这样做的机会:
现在这不会产生编译器或运行时错误,但我担心如果广泛使用这是否会产生任何问题。
如果有人能确认这会或不会导致问题,我将不胜感激。(也欢迎任何其他反馈)。
swift - Swift 中的嵌套泛型
简单地说,我有一个泛型类Class1<X:Class2<Y>>
,据我所知,Swift 迫使我Y
在声明中对类型进行硬编码Class1
,但我需要Y
和X
.
长版
我有一个泛型类 DataSource<T:GenericItem>
,它不是由非泛型实现(如ItemsDataSource:DataSource<Item>
)子类化的。
现在我想创建一个通用控制器,它可以与我的 generic 的子类一起使用DataSource
。
所以我像这样声明控制器TableViewController<DS:GenericDataSource<GenericItem>>
,但在这种情况下,我无法使用作为它自己参数DataSource
的子类的参数对其进行子类GenericItem
化(即我不能声明SuperTableViewController<ItemsDataSource>
,因为ItemsDataSource
具有Item
通用参数而不是其父参数GenericItem
)。
知道如何创建这样的通用控制器吗?
swift - Swift nested generics type does not conform to protocol
I have a Response class contain a value, and I also have a Value class contain data which conform to Mappable protocol.
Now I have a function to handle Response object, but while I try to get the data out from Value object, it show Type "R" does not conform to protocol.
This is my code in playground:
Update
Am I doing it right? Or any other way to achieve this. Thanks
c# - c# 中的函数式编程:如何嵌套 using 语句并允许代码块修改返回的数据?
我正在研究 c# 中的函数式编程,这样我就可以减少代码中的副作用数量,并使测试更容易并泛化我的代码,从而使重构变得更容易。但是,我在弄清楚如何using
使用通用 using 块嵌套语句时遇到问题。考虑以下:
我使用以下代码示例调用此代码:
我将这个修改后的using
语句的输出传递给管道中的另一个方法。
然而,我确实遇到了一个警告,我被卡住了。
如果我想使用嵌套的 using 语句,但对我想要传递的返回项进行修改怎么办?
Disposable
通过重用我上面存根的类来考虑以下内容:
此代码有效...但是,如果我想更改symmetricKey's
加密模式怎么办?
以下不起作用:
我能做些什么来允许修改通过Disposable.Using
我上面创建的通用方法传递的变量?
java - 如何使用类标记保持嵌套泛型的泛型类型
Java 中解决类型擦除的标准方法是将类标记传递给构造函数。例如,我们可以像这样定义一个通用属性类:
但是,如果我现在想使用另一个泛型类型参数(例如列表)并保留其泛型类型怎么办。我本来希望这样做:
但是当然super(ArrayList<J>.class)
不会编译,super(ArrayList.class)
. 解决这个问题的最佳方法是什么?