为什么不允许这样做并将其视为相同的签名?
public Object myMethod(Map<String, String[]> values) {
return this;
}
public Object myMethod(Map<String, String> values) {
return this;
}
为什么不允许这样做并将其视为相同的签名?
public Object myMethod(Map<String, String[]> values) {
return this;
}
public Object myMethod(Map<String, String> values) {
return this;
}
这是因为Type Erasure。Type Erasure 在编译时删除了大部分泛型信息。所以编译后的上面代码是
public Object myMethod(Map values) {
return this;
}
public Object myMethod(Map values) {
return this;
}
所以这两种方法在运行时都是相同的。