当前位置: 首页 > 面试题库 >

<?>和<?有什么区别?在Java泛型中扩展Object>?

申屠秦斩
2023-03-14
问题内容

我已经看过以前用来表示任何对象的通配符-但最近看到了以下用法:

<? extends Object>

由于所有对象都扩展了对象,所以这两种用法是同义词吗?


问题答案:

<?>并且<? extends Object>是同义的,正如你所期望的。

在某些情况下,泛型extends Object实际上并不是多余的。例如,<T extends Object & Foo>将导致T成为Object下删除,而与<T extends Foo>它会成为Foo下删除。(如果你要保留与使用的前泛型API的兼容性,这可能很重要Object。)

来源:http : //download.oracle.com/javase/tutorial/extra/generics/convert.html ; 它说明了为什么JDK的java.util.Collections类具有带有此签名的方法:

public static <T extends Object & Comparable<? super T>> T max(
    Collection<? extends T> coll
)


 类似资料:
  • 问题内容: 我正在准备考试,但有一个问题,希望这里有人可以回答我。 关于RMI和远程对象。我不知道为什么这两个实现之间有如此大的差异。一种是扩展UnicastRemoteObject,而另一种是将对象导出为UnicastRemoteObject。 我真的没有区别 接口: 这是服务器代码(版本1): 这将是版本2: 我的问题是:两者之间有什么区别? 在第一个版本中,显式创建了注册表,此外,在重新绑定

  • 你好打字专家们, 有人可以解释为什么下面的代码在第 16 行给我一个错误,而不是在第 13 行给我一个错误。这是预期功能还是缺少功能? 密码 游乐场链接

  • 问题内容: 我遇到了像这样的Java代码: 以上三种之间的区别是什么?它们在Java中如何称呼这种类型的类或接口声明? 问题答案: 好吧,前两个没有什么区别-它们只是为 type参数 (或)使用了不同的名称。 第三个不是有效的声明- 用作提供类型实 参 时使用的 通配符 ,例如,意味着引用某种类型的列表,但我们不知道是什么。 __ 所有这些都是 泛型 ,这是一个很大的话题。您可能希望通过以下资源了

  • 问题内容: 用Java导入和扩展类有什么区别 问题答案: 那是两件事。 导入一个类是为了使您可以使用该类,而无需在要编写的当前类中限定全名。 扩展类是创建一个新类,该新类是某个其他类的子类。这将允许您添加或更改要扩展的类的功能。

  • 问题内容: Java具有泛型,而通过提供了非常强大的编程模型。那么,和Java泛型之间有什么区别? 问题答案: 它们之间有很大的区别。在C ++中,您不必为泛型类型指定类或接口。这就是为什么您可以创建真正的泛型函数和类,而不必担心键入错误。 上面的方法添加了两个相同类型的对象,并且可以用于具有“ +”运算符的任何类型T。 在Java中,如果要在传递的对象上调用方法,则必须指定一种类型,例如: 在C

  • 问题内容: 我正在使用Eclipse来帮助我清理一些代码以正确使用Java泛型。大多数时候,它在推断类型方面做得非常出色,但是在某些情况下,推断类型必须尽可能地通用:对象。但是Eclipse似乎给了我一个选择,可以选择对象类型还是“?”类型。 那么之间有什么区别: 和 问题答案: 匹配项的实例,但不是。假设你要编写一个接受到任何内容的映射的方法:如果你要编写 你无法提供。如果你写 有用! 在Jav