我相信我对避免代码重复的长期问题提出了稍微不同的看法。设置是相当标准的——一堆 if 语句采取类似的行动。您将在下面找到一个简短的示例。
在代码效率、紧凑性和程序员易用性方面,我试图找出解决此类情况的最佳方法。请注意,解决这些问题的单独解决方案很好,确实更可取,因为我怀疑一个解决方案会同时满足所有三个问题。
例如,想到的一种可能的解决方案似乎笨拙而缓慢,尤其是在像 android 这样的移动设备上,而且它只有在变量是实例变量时才有效,而不仅仅是本地变量(这很可能是案子)。这个想法涉及一个 for 语句,其初始化表达式将使用双括号初始化来用与所涉及的变量相对应的字符串填充哈希映射(例如,“installText”映射到“installPermission”),然后 for 循环将包含一个 if- -else-if--else-if 子句,它将使用反射通过存储在哈希图中的变量名称来访问变量。
我怎样才能做得更好?提前感谢您的时间和建议!
if (installText.equals("Default")) {
installPermission = DEFAULT;
} else if (installText.equals("Allow")) {
installPermission = ENABLED;
} else if (installText.equals("Disallow")) {
installPermission = DISABLED;
}
if (uninstallText.equals("Default")) {
uninstallPermission = DEFAULT;
} else if (uninstallText.equals("Allow")) {
uninstallPermission = ENABLED;
} else if (uninstallText.equals("Disallow")) {
uninstallPermission = DISABLED;
}
if (runText.equals("Default")) {
runPermission = DEFAULT;
} else if (runText.equals("Allow")) {
runPermission = ENABLED;
} else if (runText.equals("Disallow")) {
runPermission = DISABLED;
}