问题标签 [bounded-wildcard]

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 投票
5 回答
1732 浏览

java - 通用下无界通配符与上限通配符

这个问题的答案告诉我们,当方法采用通配符通用类型时,可以访问或修改集合,但不能同时访问或修改。(凯西和伯特)

'当方法采用通配符通用类型时,可以访问或修改集合,但不能同时访问或修改',这是什么意思?

据我所知,方法 do1 有List<? extends Dog> d2所以 d2 只能访问但不能修改。方法 d2 有List<? super Collie> c2所以 c2 可以访问和修改,并且没有编译错误。

通用指南

0 投票
1 回答
291 浏览

java - Generic upper bounded wildcard instantiation known at run time

Why can't I call react method with Organic argument? The generic type ot the reference <? extends Organic> says that the generic type of the instantiation canb either a Organic, or a subtype of Organic.

Is because the compiler doesn't know this instantiation generic type until runtime type an so, it does not bind any value to its generic criteria?

Why is this case working? Is this case the same?

0 投票
3 回答
317 浏览

java - 通用论证方法 ? 极好的

如果这种类型应该能够添加 Apple 的任何超类型,为什么不能将新对象添加到列表中?

如果我们将参数更改为 List 列表,它当然可以工作:s


如果以前编译器不知道对象的Class,为什么我们可以在返回时使用Mixer,现在是因为是一个类?¿?

0 投票
3 回答
2905 浏览

java - 为什么我们可以实例化 Pair但我们不能与 Pair

那么为什么我们可以实例化 Pair 但我们不能实例化 Pair

VS

我知道这<?>意味着未知类型--><? extends Object>

<T>意思不一样---><T extends Object>

有人有想法吗?

0 投票
2 回答
332 浏览

java - getSuperclass() 中的类有意义吗?

Class 类中的 getSuperclass() 返回一个类型为<? super T>,也就是说Super的Class的类型参数可以是T或者它的任何一个Superclass,那么SuperClass的Class类型参数怎么会和子类的类型相同呢?

例如

不返回

在所有..就像从来没有

这有意义吗?或者我在这里遗漏了什么?

0 投票
2 回答
338 浏览

java - 有没有办法使用 Java 中的接口绑定泛型类型?

我正在尝试创建一个通用列表,该列表使用类型的.compareTo()方法对输入的项目进行排序。但是,我在第一行就遇到了问题。由于类型必须是 which implements Comparable<T>,有什么方法可以强制执行吗?我想语法:

不会工作。有什么建议么?提前致谢!

0 投票
4 回答
369 浏览

java - 适合添加到上限 ArrayList 的方法参数

以下代码是抽象类的一部分,该抽象类旨在被子类化以管理特定类型的 Shape。(它实际上是特定类的存储库,但现在不相关)

如何接受 Shape 子类作为 addShape 中适合添加到 ArrayList 的参数?

0 投票
2 回答
62 浏览

java - java编译器如何确定“方法不适用”?

使用通配符时,某些方法(例如ArrayList.set)无法使用并返回类似于以下内容的错误消息

List 类型中的方法 set(int, capture#3-of ?) 不适用于参数 (int, String)

我已经阅读了为什么会这样,并想知道这是如何完成的。那就是编译器如何知道某些方法适用(例如List.get(int))而其他方法不适用?

0 投票
1 回答
2189 浏览

java - .NET 等效于具有协变和反变的 Java 通配符泛型?

我一直在尝试将一些使用(有界)通配符泛型的 Java 代码转换为 C#。我的问题是,Java 似乎允许泛型类型在与通配符一起使用时既是协变的又是逆变的。例如:

爪哇:

...作品。

C# 等价物 (?)

...编译失败 - 请参阅评论中的错误。这是意料之中的,因为 IGeneric 的泛型参数没有为协方差标记为“out”。

如果我改变这个:

对此

错误消失了,但出现了另一个错误,用于在同一接口内声明采用泛型参数的方法:

建议?

[另请参阅后续问题以了解更难的情况]

0 投票
2 回答
569 浏览

java - .NET 等效于 Java 有界通配符 (IInterf )?

我一直在尝试将一些使用(有界)通配符泛型的 Java 代码转换为 C#。我的问题是,Java 似乎允许泛型类型在与通配符一起使用时既是协变的又是逆变的。

[这是处理更简单的有界通配符情况的前一个问题的衍生产品]

Java - 作品:

C# - 不编译...

如果我更改interface IGeneric1<T>interface IGeneric1<out T> 上述错误消失,但method1WithParam(T)抱怨方差: