我需要连接Boolean
和String
。对于每个getter
,我还需要setter
和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;
}
...
我可以在这里使用地图吗?有没有更好的方法将“连接”标志与消息?
答案 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作为值。