mirror of
https://gitee.com/chinabugotech/hutool.git
synced 2025-07-21 15:09:48 +08:00
修改CollUtil.union等方法泛型,使其支持多种子类union一个父类集合
This commit is contained in:
@@ -1110,6 +1110,26 @@ public class CollUtilTest {
|
||||
}
|
||||
}
|
||||
|
||||
@ToString(callSuper = true)
|
||||
@EqualsAndHashCode(callSuper = true)
|
||||
@Data
|
||||
static class Cat extends Animal {
|
||||
|
||||
public Cat(String name, Integer age) {
|
||||
super(name, age);
|
||||
}
|
||||
}
|
||||
|
||||
@ToString(callSuper = true)
|
||||
@EqualsAndHashCode(callSuper = true)
|
||||
@Data
|
||||
static class Pig extends Animal {
|
||||
|
||||
public Pig(String name, Integer age) {
|
||||
super(name, age);
|
||||
}
|
||||
}
|
||||
|
||||
@Test
|
||||
public void getFirstTest() {
|
||||
Assertions.assertNull(CollUtil.getFirst(null));
|
||||
@@ -1181,4 +1201,27 @@ public class CollUtilTest {
|
||||
public void minNullTest() {
|
||||
Assertions.assertNull(CollUtil.max(null));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void unionExtendTest() {
|
||||
List<Dog> dog = Arrays.asList(new Dog("dog1", 12), new Dog("dog2", 12));
|
||||
List<Cat> cat = Arrays.asList(new Cat("cat1", 12), new Cat("cat2", 12));
|
||||
Assertions.assertEquals(CollUtil.union(dog, cat).size(), dog.size() + cat.size());
|
||||
}
|
||||
|
||||
@Test
|
||||
public void unionAllExtendTest() {
|
||||
List<Dog> dog = Arrays.asList(new Dog("dog1", 12), new Dog("dog2", 12));
|
||||
List<Cat> cat = Arrays.asList(new Cat("cat1", 12), new Cat("cat2", 12));
|
||||
List<Pig> pig = Arrays.asList(new Pig("pig1", 12), new Pig("pig2", 12));
|
||||
Assertions.assertEquals(CollUtil.unionAll(dog, cat, pig).size(), dog.size() + cat.size() + pig.size());
|
||||
}
|
||||
|
||||
@Test
|
||||
public void unionDistinctExtendTest() {
|
||||
List<Dog> dog = Arrays.asList(new Dog("dog1", 12), new Dog("dog1", 12)); // same
|
||||
List<Cat> cat = Arrays.asList(new Cat("cat1", 12), new Cat("cat2", 12));
|
||||
List<Pig> pig = Arrays.asList(new Pig("pig1", 12), new Pig("pig2", 12));
|
||||
Assertions.assertEquals(CollUtil.unionDistinct(dog, cat, pig).size(), 5);
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user