如何用布尔“连接”字符串?

时间:2012-11-27 10:07:19

标签: java dictionary

我需要连接BooleanString。对于每个getter,我还需要setterBoolean

例如:

boolean errorFlag1;
private static final String  errorMessage1 = "...";
boolean errorFlag2;
private static final String  errorMessage2 = "...";
...

public Messages[] getErrorMessages()
{
    if(errorFlag1)
         Add errorMessage1 to Messages[]
    if(errorFlag2)
         Add errorMessage2 to Messages[]
    ...
}


public boolean getErrorFlag1()
{
    return errorFlag1;
}
public setErrorFlag1( ef1 )
{ 
    this.errorFlag1 = ef1;
}
...

我可以在这里使用地图吗?有没有更好的方法将“连接”标志与消息?

3 个答案:

答案 0 :(得分:2)

另一个解决方案(我希望我没有误解你的目标):

enum ErrorMessage
{
    ERROR_ONE("First message"), ERROR_TWO("Second message");

    private String message; 

    ErrorMessage(String str) 
    {
        message = msg;
    }

    public String getMessage() 
    {
        return message;
    }
}

这样您就会有一些常量错误消息,其中包含一个String作为“消息”。他们的类型为ErrorMessage,当您传递ErrorMessage.ERROR_ONE之类的内容时,您可以通过getter方法获取他们的消息。

如果您希望有一个包含错误的类,那么您可以创建错误集合,并在发生错误时添加或删除错误。

答案 1 :(得分:2)

我不确定您的错误消息是如何设置的,但我建议在Integer中存储代表每个错误的List<Integer>。错误将通过List方法添加到addError,允许操作封装列表。

然后将错误消息的定义放在Map<Integer,String>中,其密钥对应于相应的错误消息。这样,您只需在地图中添加新条目即可创建新错误。

private List<Integer> errors = new ArrayList<Errors>();
private static Map<Integer> errorLookup = new HashMap<Integer,String>();

static{
  errorLookup.put(1, "Error Message 1");
  errorLookup.put(2, "Error Message 2");
}

public void addError(Integer errorKey){
   errors.add(errorKey);
}

public List<String> getErrors(){

   List<String> errorMsgs = new ArrayList<String>();
   for(Integer key: errors){
     errorMsgs.add(this.errorLookup.get(key).value);
   }
   return errorMsgs;
}

答案 2 :(得分:0)

您可以确定使用Map,以便确定运行时错误消息的数量。使用errormessage作为键,使用boolean作为值。