首页 > 解决方案 > java方法重载似乎不清楚

问题描述

我不确定这是否是使用方法重载的正确方法,或者是否有更好/更好的其他逻辑。我有这 4 种可能发生的情况。方法计数有限制吗?

private ResponseEntity<ServiceResponse> handleResponse(ServiceResponse response, ServiceRequest request) {
    return handleResponse(response, request, null, null);
}

private ResponseEntity<ServiceResponse> handleResponse(ServiceResponse response, ServiceRequest request, Exception e) {
    return handleResponse(response, request, e, null);
}

private ResponseEntity<ServiceResponse> handleResponse(ServiceResponse response, ServiceRequest request, Header header) {
    return handleResponse(response, request, null, correlation);
}

private ResponseEntity<ServiceResponse> handleResponse(ServiceResponse response, ServiceRequest request, Exception e, Header header) {
 //logic//
}

标签: javaoverloading

解决方案


方法计数是否有限制

没有实际限制;但是每次添加另一个“可选”参数时,重载次数就会增加一倍,因此在代码量方面(认知和维护方面)的负担越来越大。

对于超过 2 个参数,您可以考虑使用“构建器模式”(我说“构建器”是因为您并没有真正构建某些东西,只是调用一个方法)。

handler()
    .withException(e) // omit if not needed
    .withHeader(h) // omit if not needed
    .call();

推荐阅读