我有两个对象,每个对象都有数十个字段:
Class1 {
int firstProperty;
String secondProperty;
...
}
Class2 {
int propertyOne;
String propertyTwo;
...
}
虽然有些字段的名称不同,但它们应该具有相同的含义和用途,例如firstProperty
and propertyOne
。我想比较两个类的对象的“相似”字段实际上是否具有相同的值。
最优雅的方法是什么?
您问的是如何处理疾病的症状 - 我建议改为治愈根本原因:通过退后一步并完全重构您的课程。
具有“数十”个字段的类很可能违反了单一责任原则.
不要问自己如何比较字段 - 问问自己如何用更少的字段设计更多的类avoid在多个地方拥有相同的信息!您应该(几乎)总是更喜欢由简单类组成的复杂网络,而不是由复杂类组成的简单网络。因为class是抽象的根源,每个类都应该only包含实施该计划所需的内容one这门课是关于什么的。
除此之外:没有简单的通用方法也可以nice。您当然可以编写一个使用反射来比较对象的实用程序类 - 您只需给出变量名称,实用程序代码即可进行通用比较。但很简单且通用 - 但不是nice.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)