1

我需要连接 aBoolean和 a String。我还需要一个gettersetter一个Boolean

例如:

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;
}
...

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

4

3 回答 3

2

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

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

    private String message; 

    ErrorMessage(String str) 
    {
        message = msg;
    }

    public String getMessage() 
    {
        return message;
    }
}

这样,您就会收到包含字符串作为“消息”的持续错误消息。它们的类型是ErrorMessage,当你传递一个 like 时,ErrorMessage.ERROR_ONE你可以通过 getter 方法获取它们的消息。

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

于 2012-11-27T10:16:01.037 回答
2

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

然后将错误消息的定义放在 aMap<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;
}
于 2012-11-27T10:17:43.847 回答
0

您可以肯定地使用 Map,因此错误消息的数量是运行时确定的。使用错误消息作为键,布尔值作为值。

于 2012-11-27T10:09:12.813 回答