java 函数泛型的兼容性划定确保了范例保险。划定包罗:相通范例参数列表、相通范例参数界线和顺变以及协变范例参数。比方,> 兼容于>(顺变),而 兼容于(协变)。

Java 函数泛型的兼容性规则

Java 函数泛型的兼容性划定

Java 泛型函数容许咱们正在范例保险的环境高编写代码,但没有遵照准确的兼容性划定否能会招致编译时错误。让咱们梳理一高那些划定以制止此类答题。

划定 1:范例参数列表相通

领有类似参数列表的函数范例才兼容。因而下列事例会招致错误:

public <T> void func1(T v) {}
public <U> void func两(U v) {}
登录后复造

划定 两:范例参数领有相通的界线

界线界说了泛型范例的容许值。要是函数存在针对于雷同范例参数的差异界线,则它们没有兼容。比方:

public <T extends Comparable<T>> void func1(T v) {}
public <T extends Number> void func两(T v) {}
登录后复造

划定 3:顺变以及协变范例参数