【发布时间】:2014-08-29 03:19:10
【问题描述】:
我有一个现有的Constant.java,我必须使用它编写一个逻辑,以便如果输入字符串包含任何常量字符串,然后执行一些操作。
public class Constants {
public static final String CONSTANT_ONE = "VALUE_CONSTANT_ONE";
public static final String CONSTANT_TWO = "VALUE_CONSTANT_TWO";
//and so on..
}
Validate.checkPhrase() 是一个布尔方法,它接受输入字符串和常量字符串作为参数,将它们转换为小写并将输出传递给java.lang.String.contains() 方法进行验证。
在我的主要逻辑中,我使用 if 有多个条件
if (Validate.checkPhrase(str,CONSTANT_ONE)
|| Validate.checkPhrase(str,CONSTANT_TWO)|| /* multiple checks */ ){
//do something
}
每次添加新常量时,我也必须手动将其添加到if condition。
有没有办法可以从Constant.java 获取所有字符串、值对并在我的逻辑中使用它。
【问题讨论】:
-
使用枚举,使用循环并迭代其值,调用 checkPhrase 并返回 true 并在成功验证时中断,否则继续验证。如果没有一个迭代验证成功,则返回 false。
-
如果您发现自己不断地添加常量(明白了吗?),您可能不想将它们放在一个类中(这意味着重新编译、重新部署等),而是放在一个配置文件中。这样您就可以轻松地修改常量列表,并且只需要重新加载您的应用程序。
-
另外,根据您的 Java 版本,您可以在字符串上使用
switch。
标签: java string if-statement constants