如何实现ExampleMatcher,从我的类中随机匹配一个属性而忽略其他属性?
假设我的类是这样的:
Public Class Teacher() {
String id;
String name;
String address;
String phone;
int area;
..other properties is here...
}
如果要按名称匹配:
Teacher TeacherExample = new Teacher("Peter");
ExampleMatcher matcher = ExampleMatcher.matchingAny()
.withStringMatcher(ExampleMatcher.StringMatcher.CONTAINING)
.withIgnoreCase()
.withIgnorePaths("id", "address", "phone","area",...); //no name
如果我想按地址匹配
ExampleMatcher matcher = ExampleMatcher.matchingAny()
.withStringMatcher(ExampleMatcher.StringMatcher.CONTAINING)
.withIgnoreCase()
.withIgnorePaths("id", "name", "phone","area",...); //no address
所以我需要重复withIgnorePaths(..)
如何避免?
1条答案
按热度按时间7qhs6swi1#
试试这个:
使用
ExampleMatcher.matching()
或ExampleMatcher.matchingAll()
时,将与示例teachert
中的所有非空字段进行比较,因此只需名称(假定来自“Peter”)。注意:对于基元值,您只需要将它们添加到
withIgnorePaths(..)
或将它们更改为装箱类型(如int -> Integer
),没有其他简单的解决方法。如果只需要按
int area
搜索,则不设置名称,但在示例中为t
或者,如果您有
Date created
,则按创建的搜索:你甚至可以设置它们来缩小搜索范围。
从文件上看
静态ExampleMatcher匹配()
(静态示例匹配器匹配全部()(& S))
创建一个新的ExampleMatcher,默认情况下包括所有非空属性,匹配从示例派生的所有 predicate 。