众所周知,您可以使用类型参数在Java中创建一个通用类:
class Foo<T> {
T tee;
Foo(T tee) {
this.tee = tee;
}
}
但是,您也可以使用泛型 构造函数 ,这意味着显式接收其自己的泛型类型参数的构造函数,例如:
class Bar {
<U> Bar(U you) {
// Why!?
}
}
我正在努力了解用例。这个功能让我做什么?
这个功能让我做什么?
它至少可以让您完成
三
件事,而这
三
件事是您无法做到的:
表达参数类型之间的关系,例如:
class Bar {
<T> Bar(T object, Class<T> type) {
// 'type' must represent a class to which 'object' is assignable,
// albeit not necessarily 'object''s exact class.
// ...
}
}
<撤回>
正如@Lino首先观察到的那样,它使您可以表达参数必须与两个或多个不相关类型的组合兼容(当最多一个是接口类型时,这才有意义)。有关示例,请参见Lino的答案。
问题内容: 我想创建一个KeyValue类,但以通用方式,这就是我写的内容: 错误显示:“令牌“>上的语法错误”,此令牌后应有标识符” 那我该如何在Java中创建一个通用构造函数呢? 问题答案: 您需要从构造函数的签名中删除:它已经隐式存在。
问题内容: 从文档中学习React 并遇到以下示例: 根据Mozilla的说法,super允许您在构造函数中使用。是否有其他原因可以单独使用(我知道也可以访问父类的方法),但是使用React时,是否还有其他仅通过自身调用的用例? 问题答案: 仅在具有构造函数的React组件内部被调用。例如,以下代码不需要超级: 但是,如果我们有一个构造函数,那么它是强制性的: 之所以不能被允许之前的原因是因为未调
问题内容: 如果我有一个像这样的抽象类: 还有一些从Item派生的类是这样的: 我不明白为什么我不能使用泛型调用构造函数: 我知道可以有一个没有构造函数的类型,但是这种情况是不可能的,因为Pencil具有没有参数的构造函数,而Item是抽象的。但是我从eclipse中得到了这个错误: 无法实例化 我不明白为什么的 T类型 ,以及如何避免这种情况? 问题答案: 无法使用Java类型系统来强制类层次结
问题内容: 这些来自github上的spring amqp示例,位于https://github.com/SpringSource/spring-amqp- samples.git 这些是 什么类型的Java构造函数?它们是吸气剂和吸气剂的捷径吗? 与此相反 问题答案: 这些构造函数被重载以使用调用另一个构造函数。第一个无参数构造函数使用空参数调用第二个。第二呼叫的第三构造(未示出),其必须采取,
本文向大家介绍泛型有什么作用?相关面试题,主要包含被问及泛型有什么作用?时的应答技巧和注意事项,需要的朋友参考一下 泛型有什么作用? 作者:rottenpen
本文向大家介绍React组件的构造函数有什么作用?相关面试题,主要包含被问及React组件的构造函数有什么作用?时的应答技巧和注意事项,需要的朋友参考一下 在react的新的写法中,每一个组件都是一个类,这个很符合es6的语法规范,在es6中要想创建一个对象,就要调用相应的构造函数, react的组件渲染有两种情况,第一种情况是第一次渲染,第二种情况是状态更新时候重新渲染,构造函数在组件的初次渲染