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

T扩展SomeClass的意义是什么?

党建义
2023-03-14
问题内容

这样的方法声明有什么区别:

public <T extends SomeClass> void doSomething(T obj)
{
    // Do something.
}

还有这个:

public void doSomething(SomeClass obj)
{
    // Do Something.
}

我的看法是,他们两个都指定传入的对象 必须 是type的子类SomeClass,那么在这种情况下为什么还要烦恼泛型呢?


问题答案:

在您的情况下,差别不大。

但是请考虑以下几点:

public <T extends SomeClass> void doSomething(List<T> obj)

在这种情况下,您可以通过以下方式调用该方法:

obj.doSomething(new ArrayList<SubclassOfSomeClass>());
obj.doSomething(new ArrayList<SomeClass>());

如果您使用

public void doSomething(List<SomeClass> obj)

您将只能执行以下操作:

obj.doSomething(new ArrayList<SomeClass>());


 类似资料:
  • 问题内容: 我在我的应用程序中使用了express以及body-parser。 但是,express 4.0中的“扩展”是什么意思? 我找到了这个 但是,我仍然不能理解它的含义。 问题答案: 如果为,则不能发布“嵌套对象” 如果为,则可以按照自己喜欢的方式进行操作。

  • 扩展是可定制化浏览体验的小程序,它们使用户可以根据个人需要或者偏好定制 Chrome 的功能和行为。它们基于 Web 技术(例如 HTML,JavaScript 和 CSS)构建。 扩展必须满足狭义定义且易于理解的单一目的(译者注:功能简单易懂化)。一个扩展可以包括多个组件和一系列功能,只要所有的内容都有助于实现共同的目标。 用户交互界面应尽量小且有意图。他们的范围从简单的图标,如右侧显示的 Go

  • 问题内容: 我在尝试找到答案时遇到了麻烦。我想知道语法和含义。我已经找到了一些信息,但是我不太了解使用该语法的目的。我正在寻找它的功能以及何时/为什么使用它的解释。 一个被使用的例子: 问题答案: 在函数调用的上下文中,将命名参数设置为空字符串。见函数; 是打印时多个值之间使用的分隔符。默认值是空格(),此函数调用可确保格式的浮点值和格式的浮点值之间没有空格。 比较以下三个调用的输出以查看区别 更

  • 问题内容: 好的,这可能有点钝了,但是Node.js的目的/需求是什么 我主要通过CloudFoundry注意到了它,但是不太确定它应该做什么。但是我猜想它可能相当大,因为为什么VMWare会支持它。 提前致谢。 问题答案: 这是一个… 高效且100%事件驱动的IO框架, 足够灵活,可以使用它可以找到的最佳基础操作系统功能, 以高级编程语言(客户端最有可能使用的相同语言)展示API, 在该语言的最

  • 我今天遇到了,我不确定我是否理解它的用途。。。在Spring文档中,它说 允许同一类处理多个请求类型的控制器实现。这个类的子类可以用表单的方法处理几种不同类型的请求 在另一个网站上,他们说 它将多个请求处理方法聚合到单个控制器中,因此相关功能可以很容易地保持在一起。 我仍然不明白扩展与下面的相比是更好还是不同?或者,更像是旧版本Spring的遗留产品?我觉得我有一些基本的误解。。。

  • 在超过时间限制的各种代码中,通过使用while(t-->0)而不是while(t--)代码成功运行。我不知道while(t-->0),我在codechef示例解决方案的某个地方读到了它。