【发布时间】:2020-11-13 01:50:45
【问题描述】:
BaseController中有一个方法,例如
public abstract class BaseManagementController<V, F extends BaseForm> {
@PostMapping
@ResponseStatus(HttpStatus.CREATED)
protected void add(@Valid @RequestBody F form, HttpServletRequest request) {
// ...
}
}
一个具体的控制器扩展它并覆盖添加方法
public class BannerController extends BaseManagementController<BannerVO, BannerForm> {
@Override
public void add(@Valid @RequestBody BannerForm form, HttpServletRequest request) {
super.add(form, request);
}
}
当我javap BannerController 我看到两个添加方法
public void add(com.foo.admin.web.vo.BannerForm, javax.servlet.http.HttpServletRequest);
descriptor: (Lcom/foo/admin/web/vo/BannerForm;Ljavax/servlet/http/HttpServletRequest;)V
flags: ACC_PUBLIC
public void add(com.foo.admin.web.vo.BaseForm, javax.servlet.http.HttpServletRequest);
descriptor: (Lcom/foo/admin/web/vo/BaseForm;Ljavax/servlet/http/HttpServletRequest;)V
flags: ACC_PUBLIC, ACC_BRIDGE, ACC_SYNTHETIC
为什么有两个 add 方法?是不是超载了?
【问题讨论】: