我正在寻找一种比较两个“列表”的更好方法。这个想法是:我有 2 个由字符串组成的列表。如果两个列表中的所有字符串都匹配,我的方法将返回 true。IE
列表(1)=“foo,foo1,foo2,foo3”
列表(2)=“foo,foo1,foo2,foo3”
在比较这两个列表时,如果所有字符串都匹配,则该方法返回 true。如果任何元素不匹配,则返回 false。
我拥有(并且有效)的代码是这样的:但是我只是想知道是否有人能想到一个更好的解决方案来解决这个问题?
private boolean match(Context messageContext, ContextRule contextRule) {
if(contextRule.getMessageContext().getUser().equals(ContextRuleEvaluator.WILDCARD)
|| (contextRule.getMessageContext().getUser().equals(messageContext.getUser()))) {
if(contextRule.getMessageContext().getApplication().equals(ContextRuleEvaluator.WILDCARD)
|| (contextRule.getMessageContext().getApplication().equals(messageContext.getApplication()))) {
if(contextRule.getMessageContext().getService().equals(ContextRuleEvaluator.WILDCARD)
|| (contextRule.getMessageContext().getService().equals(messageContext.getService()))) {
if(contextRule.getMessageContext().getOperation().equals(ContextRuleEvaluator.WILDCARD)
|| (contextRule.getMessageContext().getOperation().equals(messageContext.getOperation()))) {
return true;
}
}
}
}
return false;
}
语境
public interface Context {
public String getUser();
public void setUser(String user);
public String getApplication();
public void setApplication(String application);
public String getService();
public void setService(String service);
public String getOperation();
public void setOperation(String operation);
}
上下文规则
public interface ContextRule {
public Context getMessageContext();
public int getAllowedConcurrentRequests();
}