我有一个解析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);
...
}
问题是该参数带有我想要保留其名称的含义。 意思不会因为类型的改变而改变。 到目前为止,我的解决方案是将类型后缀为参数。 但我不喜欢这个解决方案。
我应该怎样调用变量来解决这个问题?
答案 0 :(得分:0)
到目前为止,我的解决方案是将类型后缀为参数。 但我不喜欢这个解决方案。
强类型语言,因为Java以这种方式工作
变量在运行时无法更改其类型
你必须接受语言限制。
将类型中的数据转换为方法中的其他类型可能会产生此问题。
但是你的实际解决方案相当不错
目的很明确,你保留了目标变量的自然名称。
您确实仅为要转换的输入(临时/中间变量)添加了类型后缀,而不是将在下一个语句中使用的输出。
答案 1 :(得分:0)
在Andy Turner的启发下,我可以制作两种doSomething
方法。
采用String的方法和采用布尔值的另一种方法。
然后String方法可以调用布尔方法。
如下:
void doSomething(String isSpecificRead) {
doSomething(convertStringToBoolean(isSpecificReadString));
}
void doSomething(boolean isSpecificRead) {
...
}