2015-05-01 108 views
0

嗨,当你有一个相同的签名方法让我们说。方法签名相同时的命名约定?

void getErrorMessage(int errorCode){ 

} 

void getErrorMessage(int domain){ 

} 

我知道我必须更改名称或区分参数,但什么是最佳方法?

--------------------------- Edited。

对构造函数怎么样?

例如

public ErrorMessage(int errorCode){ 
} 
public ErrorMessage(int domain){ 
} 

回答

1

你可以把方法的名称明确:

getErrorByErrorCode(int errorCode) 

而且

getErrorByDomain(int domain) 
1

您可以添加一个 “ByFoo” 的方法结束时,如:getErrorMessageByCodegetErrorMessageByDomain

0

的危险性最小,最易于理解的方式来做到这一点是:

public class ErrorCode { 
    private int intCode; 
    ErrorCode(int intCode) { 
     this.intCode = intCode; 
    } 
    int getIntegerCode() { 
     return intCode; 
    } 
} 
public class Domain { 
    private int domain; 
    Domain(int domain) { 
     this.domain = domain; 
    } 
    int getIntegerCode() { 
     return domain; 
    } 
} 

Message getErrorMessage(ErrorCode errorCode) 

Message getErrorMessage(Domain domain) 

注类是不可变的。你应该也可以重写equals。在使用整数值的任何地方都可以使用这些类。

现在,不可能在代码中的任何地方将错误代码误认为域。如果你将其中一个误认为是另一个,你会得到一个编译器错误,编译器会选择getErrorMessage的正确实现。只有当您需要对其执行整数运算时,才从对象中提取整数值。