import com.google.common.collect.*;
import com.sun.istack.internal.NotNull;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.ToString;
import org.apache.commons.collections4.CollectionUtils;
import org.apache.commons.lang3.StringUtils;
import org.apache.commons.lang3.exception.ExceptionUtils;
import org.apache.commons.lang3.tuple.Pair;
import org.hibernate.validator.constraints.Length;
import org.junit.jupiter.api.Test;
import org.springframework.beans.BeanUtils;
import javax.validation.constraints.Max;
import javax.validation.constraints.Min;
import java.util.*;
import java.util.function.Function;
import java.util.stream.Collectors;
@Data
@EqualsAndHashCode
@ToString
public class UtilTest {
@NotNull
@Min(1)
@Max(2)
private String s1;
@Length(min = 1, max = 2, message = "长度1到2")
private String s2;
@Test
public void testGuava(){
ImmutableMap.of("key1", "value1", "key2", "value2");
ImmutableMap.builder().put("key1", "value1").build();
ImmutableSet.of(1, 2);
ImmutableList.of("a");
Lists.partition(ImmutableList.of(1, 1, 2, 2, 3), 2);
}
@Test
public void testJDK() throws Exception {
"A".equalsIgnoreCase("a");
new ArrayList<>().stream().distinct().collect(Collectors.toList());
Collections.singletonList(1);
Optional.of(new Object()).filter(o -> o == null).orElse(null);
Optional.empty();
ImmutableList.of(new Object()).stream().map(Object::hashCode).collect(Collectors.toList());
ImmutableList.of(new Object()).stream().collect(Collectors.toMap(Object::hashCode, Function.identity()));
ImmutableList.of(new Object()).stream().collect(Collectors.toMap(Object::hashCode, Function.identity(), (key1, key2) -> key2, LinkedHashMap::new));
ImmutableMap.of("key1", "value1").forEach((key, value) -> {});
ImmutableList.of(1).forEach(item -> {});
Objects.isNull(new Object());
ImmutableList.of(1, 2).stream().filter(o -> o > 0).collect(Collectors.toList());
ImmutableList.of(1, 2).stream().filter(o -> o > 0).findAny().ifPresent(o -> {});
ImmutableList.of(1, 2).stream().filter(o -> o > 0).findAny().orElseThrow(() -> new Exception());
Objects.requireNonNull(new Object(), "object is null");
((Long)(1L)).intValue();
"1".compareTo("2");
((Long)(1L)).compareTo(2L);
List<Integer> list1 = new ArrayList<>();
list1.add(1);
list1.add(2);
List<Integer> list2 = new ArrayList<>();
list2.add(2);
list2.add(3);
list1.retainAll(list2);
ImmutableList.of("1", "2").stream().collect(Collectors.joining(","));
ImmutableList.of("1", "2").stream().noneMatch(Objects::nonNull);
ImmutableList.of(new Object(), new Object()).stream().collect(Collectors.groupingBy(Object::hashCode));
Objects.equals(new Object(), new Object());
List<Object> list3 = new ArrayList<>();
list3.add(new Object());
list3.add(new Object());
list3.sort(Comparator.comparing(Object::hashCode));
}
@Test
public void testCommonsLang3(){
StringUtils.trim("1 ");
ExceptionUtils.getMessage(new Throwable());
ExceptionUtils.getStackTrace(new Throwable());
Pair.of("left", "right");
StringUtils.isEmpty("1");
StringUtils.isBlank("1");
ThreadFactory threadFactory = new ThreadFactoryBuilder().setNameFormat("thread-%d").build();
ThreadPoolExecutor executor = new ThreadPoolExecutor(1, 1, 0L, TimeUnit.MILLISECONDS, new LinkedBlockingQueue<>(), threadFactory);
executor.submit(() -> {});
StringUtils.isNumeric("1");
}
@Test
public void testCommonsCollections4(){
CollectionUtils.isEmpty(new ArrayList<String>());
Iterables.getLast(ImmutableList.of(1));
}
@Test
public void testSpringBeans(){
BeanUtils.copyProperties(new Object(), new Object());
}
}
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>org.example</groupId>
<artifactId>util-test</artifactId>
<version>1.0-SNAPSHOT</version>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<source>8</source>
<target>8</target>
</configuration>
</plugin>
</plugins>
</build>
<dependencies>
<dependency>
<groupId>com.google.guava</groupId>
<artifactId>guava</artifactId>
<version>27.0.1-jre</version>
</dependency>
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-lang3</artifactId>
<version>3.8.1</version>
</dependency>
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-collections4</artifactId>
<version>4.2</version>
</dependency>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.12</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>1.18.0</version>
</dependency>
<dependency>
<groupId>javax.validation</groupId>
<artifactId>validation-api</artifactId>
<version>2.0.1.Final</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-beans</artifactId>
<version>5.1.14.RELEASE</version>
</dependency>
<dependency>
<groupId>org.hibernate.validator</groupId>
<artifactId>hibernate-validator</artifactId>
<version>6.0.18.Final</version>
</dependency>
<dependency>
<groupId>org.junit.jupiter</groupId>
<artifactId>junit-jupiter</artifactId>
<version>RELEASE</version>
<scope>compile</scope>
</dependency>
</dependencies>
</project>