假设我有课
public static class A<T extends D> { ... }
和类(class)D
有两个类扩展它: B
和C
,例如
public static class D { ... }
public static class B extends D { ... }
public static class C extends D { ... }
现在,在某个地方,假设我想要一个 A
的数组的,无论是 B
-种类或C
-种类。 (例如,将 D
类中的函数应用于数组中的所有项目。)
我应该再次约束类型吗?
换句话说:应该选择哪一个选项?
A<?>[] re;
A<? extends D>[] re;
哪一种是最佳实践?
最佳答案
自 T
上限为 D
, A<?>
只是 A<? extends D>
的简写。它们的含义相同 - 就像 if T
是无界的,A<?>
将缩写为 A<? extends Object>
.
对于这种语法,我不知道有什么最佳实践;我认为这只是编码风格的问题。我更喜欢 A<?>
因为它很简洁A<? extends D>
立即将上限传达给不熟悉 A
的开发人员。
关于java - 当类具有有界类型参数时使用有界通配符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20542474/