方法 count(JobViewWrapper) 已经定义
method count(JobViewWrapper) is already defined
我目前正在学习spring启动并遇到错误消息
method count(JobViewWrapper) is already defined
是的,因为它有2个相同的方法名,但是方法有2个独立的功能,第一个是统计所有删除标志1的作业。
第二个(count-active),是统计所有删除标志为1且为活动标志1的作业。
所以我需要这 2 个方法,有解决方法吗?
@PostMapping(value = "/count")
public long count(@RequestBody(required = false) JobViewWrapper wrapper) {
System.out.println("into controller count");
if (wrapper == null) {
wrapper = new JobViewWrapper();
}
System.out.println("Prepare to count service");
return JobService.countLazyView();
}
@PostMapping(value = "/count-active")
public long count(@RequestBody(required = false) JobViewWrapper wrapper) {
System.out.println("into controller count");
if (wrapper == null) {
wrapper = new JobViewWrapper();
}
System.out.println("Prepare to count service");
return JobService.countLazyViewIsActive();
}
我的服务
public long countLazyView() {
return lowonganKerjaRepo.countLazyView();
}
public long countLazyViewIsActive() {
return lowonganKerjaRepo.countLazyViewIsActive();
}
如果你真的想overload method count
你必须select可用的三个选项之一:
- 提供不同数量的参数:
@PostMapping(value = "/count")
public long count(@RequestBody(required = false) JobViewWrapper wrapper) {
// ...
return JobService.countLazyView();
}
@PostMapping(value = "/count-active")
public long count() {
return JobService.countLazyViewIsActive();
}
- 提供不同类型的参数:
@PostMapping(value = "/count")
public long count(@RequestBody(required = false) JobViewWrapper wrapper) {
// ...
return JobService.countLazyView();
}
@PostMapping(value = "/count-active")
public long count(@RequestBody(required = false) ActiveJobViewWrapper wrapper) {
return JobService.countLazyViewIsActive();
}
- 提供不同顺序的参数(在这种情况下似乎不适用)。
如果这些选项中的 none 个可以 select 可用,您将有以下选项:
为这些方法提供不同的名称 count()
和 countActive
用一个具有附加参数的方法替换这些方法(API 调用可能更改为 /count?active=true):
@PostMapping(value = "/count")
public long count(
@RequestParam(name = "active", required = false, defaultValue = "false") Boolean active,
@RequestBody(required = false) JobViewWrapper wrapper) {
// ...
return active ? JobService.countLazyViewIsActive() : JobService.countLazyView();
}
我目前正在学习spring启动并遇到错误消息
method count(JobViewWrapper) is already defined
是的,因为它有2个相同的方法名,但是方法有2个独立的功能,第一个是统计所有删除标志1的作业。 第二个(count-active),是统计所有删除标志为1且为活动标志1的作业。
所以我需要这 2 个方法,有解决方法吗?
@PostMapping(value = "/count")
public long count(@RequestBody(required = false) JobViewWrapper wrapper) {
System.out.println("into controller count");
if (wrapper == null) {
wrapper = new JobViewWrapper();
}
System.out.println("Prepare to count service");
return JobService.countLazyView();
}
@PostMapping(value = "/count-active")
public long count(@RequestBody(required = false) JobViewWrapper wrapper) {
System.out.println("into controller count");
if (wrapper == null) {
wrapper = new JobViewWrapper();
}
System.out.println("Prepare to count service");
return JobService.countLazyViewIsActive();
}
我的服务
public long countLazyView() {
return lowonganKerjaRepo.countLazyView();
}
public long countLazyViewIsActive() {
return lowonganKerjaRepo.countLazyViewIsActive();
}
如果你真的想overload method count
你必须select可用的三个选项之一:
- 提供不同数量的参数:
@PostMapping(value = "/count")
public long count(@RequestBody(required = false) JobViewWrapper wrapper) {
// ...
return JobService.countLazyView();
}
@PostMapping(value = "/count-active")
public long count() {
return JobService.countLazyViewIsActive();
}
- 提供不同类型的参数:
@PostMapping(value = "/count")
public long count(@RequestBody(required = false) JobViewWrapper wrapper) {
// ...
return JobService.countLazyView();
}
@PostMapping(value = "/count-active")
public long count(@RequestBody(required = false) ActiveJobViewWrapper wrapper) {
return JobService.countLazyViewIsActive();
}
- 提供不同顺序的参数(在这种情况下似乎不适用)。
如果这些选项中的 none 个可以 select 可用,您将有以下选项:
为这些方法提供不同的名称
count()
和countActive
用一个具有附加参数的方法替换这些方法(API 调用可能更改为 /count?active=true):
@PostMapping(value = "/count")
public long count(
@RequestParam(name = "active", required = false, defaultValue = "false") Boolean active,
@RequestBody(required = false) JobViewWrapper wrapper) {
// ...
return active ? JobService.countLazyViewIsActive() : JobService.countLazyView();
}