方法重载不适用于不同的参数
2022-09-03 06:16:12
为什么不允许这样做,并将其视为相同的签名?
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;
}
这是因为类型擦除。类型擦除在编译时删除大多数泛型信息。所以上面的代码在编译后会是
public Object myMethod(Map values) {
return this;
}
public Object myMethod(Map values) {
return this;
}
因此,这两种方法在运行时是相同的。