如何编写对不同对象类型通用的匹配器,并根据注释推断要检查的内容?

时间:2017-03-06 12:30:37

标签: java annotations

请您告诉我如何使用注释来实现以下目标。

我有不同的属性,例如

地址有  地址码,地址ID,地址行1,地址行2,邮政编码

BankDetails有 银行,银行名称,银行地址,帐号,分类代码

上述对象中的主键字段可以根据对象类型而改变。例如,Address具有主键作为地址码和地址ID,而BankDetails具有主键作为bankid。在某些情况下,主键可以是复合键。

我想用@primary注释作为主键的变量,然后有一个名为' Matcher'的类。它接收某个类型的两个对象并比较主键,如果匹配则返回true。我希望这样我可以保持matcher通用并传入任何对象类型。

1 个答案:

答案 0 :(得分:1)

假设您已经有一个注释@Primary。您可以创建一个方法,给定一个对象,扫描其字段并构建一个键数组,考虑使用@Primary注释的字段的值:

event

然后,如果要检查两个对象是否具有完全相同的键,只需为两者创建键数组,然后比较数组。