java - 多种通用类型
问题描述
因此,首先,我将说明我的问题不是指将多个泛型应用于一个类。我知道你可以用逗号简单地做到这一点。
我的问题是是否有一种方法可以为泛型提供多个可能的扩展。例如:
public class Foo<? extends String>{}
public class Bar<? extends StringBuilder>{}
//combined
public class FooBar<? extends String, StringBuilder>{}
//or perhaps
public class FooBar<? extends String || StringBuilder>{}
我知道 FooBar 类不会编译,但我希望这有助于解释我的问题和指定的意图。最后重申我的问题:是否可以在通用子句中扩展两个类或间接模拟这种行为的方式?
请注意,我不是在问泛型是如何工作的,也不是在询问扩展是如何工作的,也不是在询问如何以及何时使用泛型,因为我已经知道这一点。如果问题需要澄清,我将尽我所能进行编辑以提供进一步的理解。
解决方案
一个类不可能同时扩展两者String
,StringBuilder
因为类只有一个父类。但是,它们可以实现多个接口,您可以使用&
.
class FooBar<T extends String & Runnable & Collection<Integer>> {}
(请注意,这String
是最终的,因此实际上不可能满足上述约束。)
推荐阅读
- python - 如何将具有多种语言的数据框列翻译成英语而不得到:HTTP 错误 429:请求过多
- bash - Bash:无法从管道读取
- javascript - ReactJS 中名称的下拉列表
- c++ - 使用布尔值验证整数输入
- reactjs - 在 JHipster 中使用货币字段
- rust - 在实现返回可变引用的迭代器时,如何解决“无法为 autoref 推断适当的生命周期”?
- python - 如何让我的按钮增加我的迭代值并在网站上显示效果?(django)
- javascript - 如何在 mat-select 的两行中显示数据?
- java - 我对 firebase 和 imageView 有疑问
- ajax - 如何使用 Leaflet 中的 AJAX 调用更改从 GeoJSON 中获取的线条的样式?