【发布时间】:2019-01-22 22:06:10
【问题描述】:
我有以下 Java 代码,我想将其最小化或以更简洁的方式编写。如果可行,您能帮帮我吗?
return( Objects.equals(obj1.getMeaning(), obj2.getMeaning())
&& Objects.equals(obj1.getModifies(), obj2.getModifies())
&& Objects.equals(obj1.getOriginalCommentString(), obj2.getOriginalCommentString())
&& Objects.equals(obj1.getReferences(), obj2.getReferences())
&& Objects.equals(obj1.getReturnDescription(), obj2.getReturnDescription())
&& Objects.equals(obj1.getReturnType(), obj2.getReturnType())
&& Objects.equals(obj1.getSuppressions(), obj2.getSuppressions())
&& Objects.equals(obj1.getTemplateTypeNames(), obj2.getTemplateTypeNames())
&& Objects.equals(obj1.getThisType(), obj2.getThisType())
&& Objects.equals(obj1.getThrownTypes(), obj2.getThrownTypes())
&& Objects.equals(obj1.getTypedefType(), obj2.getTypedefType())
&& Objects.equals(obj1.getType(), obj2.getType())
&& Objects.equals(obj1.getVersion(), obj2.getVersion())
&& Objects.equals(obj1.getVisibility(), obj2.getVisibility()))
以字符串的形式给出方法列表,然后创建一个映射函数来一一测试它们是否是一种好习惯。我读过Java中的反射,但我不是那么精通。
【问题讨论】:
-
为什么不在你的类上实现equals()?
-
用这个逻辑覆盖equals方法
-
如果您决定实施
equals,请先阅读:stackoverflow.com/questions/27581/… -
14个字段太多,分解成几个类试试
-
@AndrewTobilko 为什么 14 个字段太多了?