最近我在开发某银行的Api接口,并且接收到了他们提供的SDK作为辅助,在了解他们底层代码时发现一个有趣的问题,所以分享出来一起分析,是否有这样写的价值。
在代码中,主要内容是,他们定义了一个自己的Map 集成了HashMap,而在构造方法中,参数规定为Map<? extends String,? extend String>,而总所周知String 是final常量,因此无法被继承,所以 ? extends String 这种写法我认为没有任何意义,但是,怀有对银行这种严谨开发的崇尚,认为这种写法应该有特殊的含义,因此,请教各位大神,欢迎指教。
public class BankHashMap extends HashMap<String, String> {
public BankHashMap(Map<? extends String, ?extends String> m){
super(m);
}
}