问题标签 [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.
c# - 搜索嵌套列表
我有这个数据结构:
此集合中的数据:
然后:
我收集了会议对象:
我想搜索一个类似的字符串"uni"
并找到具有类似 .org 的会议集合"uni"
。我怎样才能做到这一点?
c# - 嵌套泛型:为什么在这种情况下编译器不能推断类型参数?
当我遇到一个我不理解的类型推断错误时,我正在玩一个爱好项目。我已将其简化为以下简单示例。
我有以下类和功能:
现在考虑以下示例:
最后一个示例产生编译器错误,但在我看来,它应该能够毫无问题地推断类型参数。
问题:为什么编译器<Foo, Bar, Baz>
在这种情况下不能推断?
更新:我发现简单地将第二个 lambda 包装在一个标识函数中会导致编译器正确推断所有类型:
为什么它可以完美地完成所有单独的步骤,而不是一次完成整个推理?编译器分析隐式 lambda 类型和隐式泛型类型的顺序是否有一些微妙之处?
c# - 创建值嵌套泛型类型并将其分配给变量
在这里我创建了类型的变量约会Pair<Pair <int, int>, String>
我想创建一个这种类型的值并将其分配给约会。
有人可以帮我吗?我是 C# 和编程的新手。
java - 具有嵌套泛型的不可转换类型
我查看了我仍然感到困惑的其他类型转换 Java 泛型问题。
我有以下类层次结构:(WeightedThing<T>
只是为某些随机类型添加权重)和一个自定义Vector
类WeightedVector
(不,WeightedVector
不仅仅是WeightedThing<Vector>
)是子类。
我想做最近邻搜索并将最近向量列表返回给给定查询向量及其距离。为此,我定义了一个search
方法:
希望我能做到
这不起作用(IntelliJ 不会将其标记为错误,但使用 Sun 的 Mac OS X 的 jdk7u10 编译它会失败)。也不用 . 调用相同的函数Vector
。我可以通过添加向上转换来强制它编译Object
,但这看起来很可怕。
这样做的目的是我可以搜索和添加任何类型的向量,但如果我知道我只添加了 WeightedVectors,我想将结果转换回 WeightedVectors。
java - Java 嵌套泛型类型不匹配
在以下示例中:
为什么对 second(b) 的调用有效,而对 Fourth(a) 的调用却没有?
我收到以下错误:
java - 有什么方法可以在 Java 中获取一个类或实例化一个双泛型类型?
所以说我有:
我想实现 Factory 来构建 Foo<T>s:
两个问题:
- 如果我只有 Class<T>,有什么方法可以让我获得 Class<Foo<T>>?不幸的是,Foo 是一个私有类,因此唯一具有全貌(即知道 T 将是什么)的代码不知道 Foo,因此不能给我 Class<Foo<T>>。
- 有没有更好的方法可以解决这个问题?
谢谢!
PS对于那些要求更多细节的人,我们开始吧。完整的故事是 Foo 和 FooFactory 都将是外部类中的私有类。Foo 在整个外部类中被广泛使用,为了避免虚假的垃圾收集,我想使用 ObjectPool 来实例化 Foo 的实例,而不是更新它们并让它们一直被垃圾收集。但是,为了使用我的 ObjectPool,我需要一个 Factory<Foo<T>>,并且在 Outer<T> 内部,我显然不知道实例化 Outer<T> 时 T 会是什么。
java - 有什么意义吗在Android编码中?
我试图定义一个包装类 android.view.View
及其子类,并包含一些有关渲染的信息(人们可能将其称为 View Model 或 PresentationModel)。
我的主要问题是我是否应该将视图变量的类型参数化。Java 的通用实现似乎相当简单(例如,所有类型参数信息在编译时都被删除),我可以在这里找到两个可能的优点。
1)向下转换看起来更酷,即使我仍然需要在代码中的某处指定类型。
有了上面,
变成
2)我也许可以写一些多态代码;
如果某个方法被某些子类重新定义,
与以上,
可能会根据我们提供的类型参数表现不同。最大的问题是我不知道 Google 的 android 框架中是否有任何实际的覆盖案例。
目前,我会避免使用泛型,因为显然我不能HashMap
与泛型类一起使用。
java - 在java中声明双重使用通配符
我无法为方法的输出声明一个完全通用的类型。情况如下:
在我的代码中,我有其中之一;
但是,当我打电话时
让编译器满意的唯一方法是声明
但我真的很想更具体地说明我的泛型并声明
但是,由于每个通配符都是独立的,编译器会抱怨这是不正确的,说明它无法从
有什么方法可以正确声明这种情况吗?
仅供参考,A、B 和 C 类来自外部库。我试图将我的实例声明为
但这也是我无法控制的第四类方法的结果:
java - 为什么这些泛型不在 OpenJDK7 中编译,但在 OpenJDK6 中编译
在 OpenJDK6 上编译良好,但在 OpenJDK7 中给出:
请注意,第 50 行有 rawtype 警告,因为必须对 Alert 进行参数化。如果我这样做,例如extends BaseController<Alert<Object>>
,代码编译。但我不能这样做,因为我需要实现 getModelClass()。
更新:这是 Java 6 实现中的一个错误,已在 Java 7 中修复:http ://bugs.sun.com/bugdatabase/view_bug.do?bug_id=6559182 。(这是我对编译器开发人员的问题:http: //openjdk.5641.n7.nabble.com/Nested-generics-don-t-compile-in-1-7-0-15-but-do-in-1 -6-0-27-td121820.html )
java - Java:“使用未经检查或不安全的操作。重新编译...”
尽管花费了大量时间在谷歌上搜索我的困境的答案并重新阅读了我的 Java 教科书中关于泛型的章节,但我似乎无法用以下代码解决问题:
特别是,我收到一个弹出窗口,其中包含以下消息:
几乎所有 I here 或 Comparable there 的组合仍然会导致这样的弹出窗口。我正在使用 BlueJ 环境进行编程,这使得无法合并相关的编译器参数以查看任何细节。
据我到目前为止的研究可以看出,这与内部类使用 I 泛型类型有关,因此 RedBlackNode 内部类中的“RedBlackNode 实现 Comparable”和 compareTo 方法需要与之抗衡不知何故的事实。
我知道这个问题已经在 stackoverflow 和其他地方被问过并且回答了很多次,但我似乎无法将从这些实例中学到的东西应用到我的案例中。我对泛型很陌生,所以我能在这里得到的任何帮助都将不胜感激!