问题标签 [unbounded-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 回答
1359 浏览

java - 收藏和收藏有什么区别

我主要是一名 C# 开发人员,我正在向我的朋友教授数据结构,他们在大学里使用 Java,我在 Java 中看到了这样的表达:

Collection<T>我在 C# 中没有见过这样的东西,所以我想知道 Java和Java 有什么区别Collection<?>

我认为它也可以用上面的方式编写。文档中的那个人正在比较Collection<Object>Collection<T>尽管如此。

示例取自http://docs.oracle.com/javase/tutorial/extra/generics/wildcards.html

0 投票
1 回答
616 浏览

java - 需要将对象转换为无界通配符....但在我的情况下如何?

由于无界通配符,我无法在地图中放置对象。我不熟悉通配符。让我感到困难的是(对我来说......)我无法更改构造函数的输入类型(即 myMap),但我需要在地图中放置一个对象。

有人会帮忙吗..?提前致谢!

0 投票
5 回答
8394 浏览

java - 未绑定通配符和原始类型之间的区别

我正在阅读有关泛型的信息,但我不明白对未绑定通配符的需求以及它与原始类型的区别。我读了这个问题,但仍然没有弄清楚。在 未绑定通配符的 Java 教程页面中,我得到以下两点,但我不明白第一点:

  • 如果您正在编写一个可以使用Object类中提供的功能来实现的方法。
  • 当代码使用泛型类中不依赖于类型参数的方法时。例如,List.size()List.clear()。事实上,Class<?>之所以经常使用,是因为其中的大多数方法Class<T>都不依赖于T.

有人可以用外行语言解释未绑定通配符和原始类型之间的区别。

与有何List<?>不同?List<Object>

0 投票
6 回答
1419 浏览

java - List 和 List 的区别

我已经阅读了很多关于此的内容,并且我知道:

现在我读到以下是可以的:

然后:

然而:

例子:

我明白为什么你不能向通配符列表添加任何东西,因为它的类型可以是任何东西。但是,为什么可以添加到 undefinedList 中?给定(1)和(2),它们看起来相同并表现出相同的行为。

0 投票
2 回答
1094 浏览

java - 泛型 Java,无界通配符

您好,直接来自 Oracle http://docs.oracle.com/javase/tutorial/collections/interfaces/collection.html提供的 java 教程

我知道编译时的类型擦除。而且我也知道类型(无界)将被 Object 替换。意识到在编译时使用无界通配符编译器会做什么?只是将其删除,因为它是原始类型?

提前致谢。

0 投票
1 回答
2079 浏览

java - 应该兼容的不兼容通配符类型

这个问题之后,它提供了一个解决方案但没有解释它(不幸的是,答案中的链接现在已经死了):

采取以下方法:

很简单,不是吗?但是,这无法在 jdk1.7.0_25 上编译:

怎么回事?Map.entrySet()被指定为返回一个 类型的对象Set<Map.Entry<K, V>>,所以在上面的例子中,myMap.entrySet()返回一个Set<Map.Entry<?, ?>>. 但它不编译!

更奇怪的是,从顶部的链接问题中,将方法更改为此使其编译:

怎么回事???调用entrySetaMap<?, ?>返回 aSet<Map.Entry<K, V>>,它不能分配给 type 的变量Set<Map.Entry<K, V>>,但Set<? extends Map.Entry<K, V>>?????

谁能解释这里发生了什么?这是否意味着,每当我使用至少 2 层深度的通配符类型编写方法时,我必须记住在? extends ...某个地方创建它?

0 投票
3 回答
88 浏览

java - java java.util.List接口中不同参数类型的含义

和有什么区别

public List<?> myList;

public List<String> myList;

我知道后者将存储一个ListmyList 对象(字符串),但不确定第一个做什么。我的猜测是它将接受任何对象type。但这安全吗?

0 投票
3 回答
852 浏览

java - Java 方法无界类型或类返回

我正在阅读这篇关于子类化构建器类的文章。我理解这篇文章,但有一点让我感到困扰。有这个方法,

当我更改Builder<?>Builder原始类型时,编译器不会编译代码。错误是,

使用附加传递给编译器的附加信息是什么<?>?我怀疑是编译器在编译过程中无法找到正确的实例。如果我删除 (A) 中的注释标记,则代码编译并运行良好。它一直指的是 Rectangle 实例。所以,我的猜测是编译器失败了。

如果有人可以向我指出一篇解释这一点或导致找到更多信息的文章,那就太好了。谢谢。

我在这里粘贴了代码:

0 投票
2 回答
18995 浏览

java - Java 嵌套泛型类型

为什么必须使用泛型类型Map<?, ? extends List<?>>而不是更简单Map<?, List<?>>的以下test()方法?

请注意以下工作,并且这三种方法无论如何都具有相同的擦除类型。

0 投票
2 回答
694 浏览

java - 使用对象作为无界通配符引用对象的参数

简单类:

尝试执行传递 Object 实例的 put() 方法

编译器指出一个错误:

编译器实际上不知道期望什么类型,但有一件事是肯定的——它将是一个 Object 或它的子类。为什么会引发错误呢?

谢谢你