不理解这句话
Topic sourcePair<Integer> p = new Pair<>(123, 456);
Pair<double> p = new Pair<>(123.1, 456.1);
......
p.setFirst(new Integer(first.intValue() + 100));
p.setLast(new Integer(last.intValue() + 100));
如上,把pair的T换成double,但setFirst的参数(new Integer(first.intValue() + 100))显然是个Integer,这样就出错了,同理如果setFirst的参数换成其他的类型T1,那么当Pair的T换成与T1不同的类型T2时就出错了(其中T1,T2是? extends Number),所以setFirst传不了任何参数。
- 1
有名字可用吗
这就是
<? extends Number>
通配符的一个重要限制:方法参数签名setFirst(? extends Number)
无法传递任何Number
类型给setFirst(? extends Number)
。这句话是什么意思