作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我是 Java 新手,这是我的代码,
if( a.name == b.name
&& a.displayname == b.displayname
&& a.linkname == b.linkname
......... )
return true;
else
return false;
我将调用此方法,并且必须检查对象“a”和“b”的所有属性。每个对象都有 20 多个属性。因此,如果我对每个属性都使用 if case,就会很整洁。
如果返回为 false,则会引发异常,并且我必须报告哪个属性失败。有没有简单的方法可以找到 if 情况下条件失败的位置。
请帮忙。如果您不清楚问题,请询问。
最佳答案
问题是,如果其中一个条件不满足,您是否要继续检查?您可以在有接口(interface)的情况下执行类似比较器的操作:
public interface IComparator {
boolean compare(YourObject o1, YourObject o2);
String getComparatorName();
}
接下来,您创建该接口(interface)的一组实现:
NameComparator implements IComparator {
private name="Name Comparator";
@Override
public boolean compare(YourObject o1, YourObjecto2) {
return o1.getName().equals(o2.getName());
}
@Override
public String getComparatorName() {
return name;
}
}
接下来,您将这些比较器的集合存储在 arrayList 中,然后迭代它们,并通过将它们添加到其他集合来记录失败的比较器。希望有帮助!
例如,您创建数组:
IComparator[] comparators = new IComparator[]{ new NameComparator, new DisplayNameComparator};
List<IComparator> failedComparationOperations = new ArrayList<IComparator>();
for(IComparator currentComparator : comparators) {
if(!currentComparator.compare(o1, o2)) {
failedComparationOperations.add(currentComparator);
}
}
for(IComparator currentComparator: failedComparationOperations)
{
System.out.println("Failed Comparation at: "+currentComparator.getComparatorName());
}
关于java - 在具有多个条件的 If 情况下,我们能否获得条件失败的确切位置?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22786977/
我是一名优秀的程序员,十分优秀!