如何命名具有相同含义但不同类型的两个变量

时间:2017-08-25 13:13:34

标签: java naming-conventions naming

我有一个解析String并将其转换为布尔值的方法。 法律价值观是真实的"和"假"。

boolean convertStringToBoolean(String text) {
  if (text.equals("true") {
    return true;
  } else if (text.equals("false")) {
    return false;
  } else {
    throw new IllegalArgumentException(text);
  }
}

当我使用这个变量时,我得到一个命名问题。

void doSomething(String isSpecificReadString) {
  boolean isSpecificRead = convertStringToBoolean(isSpecificReadString);
  ...
}

问题是该参数带有我想要保留其名称的含义。 意思不会因为类型的改变而改变。 到目前为止,我的解决方案是将类型后缀为参数。 但我不喜欢这个解决方案。

我应该怎样调用变量来解决这个问题?

2 个答案:

答案 0 :(得分:0)

  

到目前为止,我的解决方案是将类型后缀为参数。   但我不喜欢这个解决方案。

强类型语言,因为Java以这种方式工作 变量在运行时无法更改其类型 你必须接受语言限制。

将类型中的数据转换为方法中的其他类型可能会产生此问题。
但是你的实际解决方案相当不错 目的很明确,你保留了目标变量的自然名称。

您确实仅为要转换的输入(临时/中间变量)添加了类型后缀,而不是将在下一个语句中使用的输出。

答案 1 :(得分:0)

在Andy Turner的启发下,我可以制作两种doSomething方法。 采用String的方法和采用布尔值的另一种方法。 然后String方法可以调用布尔方法。 如下:

void doSomething(String isSpecificRead) {
  doSomething(convertStringToBoolean(isSpecificReadString));
}

void doSomething(boolean isSpecificRead) {
  ...
}