H5W3
当前位置:H5W3 > 其他技术问题 > 正文

为何java泛型方法限定无效?

相关代码

public class GenericTes {

public static <T, S extends T> void apply(T t, S s) {
}
public static void main(String[] args) throws Exception {
apply(new Double(1.0), new Integer(1));
}

}

题目来源及自己的思路

S我传的new Integer(1),T我传的new Double(1.0),按理泛型方法不是有自动类型推断吗,推断出T是Double,S是Integer,那应该不满足S extends T啊,怎么回事?为啥可以这样传参吗,一点限制都没做?

回答

表面上是 apply(Double, Integer),实际上是 apply(Number, Integer)
甚至可以写 apply("", 1),因为是apply(Serializable, Integer)

大哥能说详细点吗,为什么Double编程number了,后面的Integer不变

本文地址:H5W3 » 为何java泛型方法限定无效?

评论 0

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址