这是我的代码示例:
private static void fac(Map<? extends Serializable,? extends Serializable> mapTo){
//do sth.
}
public static void main(String[] args) {
Map<String,Object> mapFrom=null;
fac((Map<? extends Serializable, ? extends Serializable>) mapFrom);
}
上面的代码在eclipse中编译成功(带有类型安全警告)但在maven中编译失败(javac导致的“不兼容类型”错误?)。
现在我必须像这样更改我的代码:
public static void main(String[] args) {
Map<String,Object> mapFrom=null;
fac((Map) mapFrom);
}
我已经确认java版本是一样的,我的问题是:
为什么他们有不同的行为?
编写代码的首选方式是什么?