diff --git a/src/main/java/org/apache/ibatis/builder/annotation/MapperAnnotationBuilder.java b/src/main/java/org/apache/ibatis/builder/annotation/MapperAnnotationBuilder.java index 72051b8b7e0..88532e1b92d 100644 --- a/src/main/java/org/apache/ibatis/builder/annotation/MapperAnnotationBuilder.java +++ b/src/main/java/org/apache/ibatis/builder/annotation/MapperAnnotationBuilder.java @@ -23,17 +23,8 @@ import java.lang.reflect.Method; import java.lang.reflect.ParameterizedType; import java.lang.reflect.Type; -import java.util.ArrayList; -import java.util.Collection; -import java.util.HashMap; -import java.util.HashSet; -import java.util.Iterator; -import java.util.List; -import java.util.Locale; -import java.util.Map; -import java.util.Optional; -import java.util.Properties; -import java.util.Set; +import java.util.*; +import java.util.stream.Collectors; import org.apache.ibatis.annotations.Arg; import org.apache.ibatis.annotations.CacheNamespace; @@ -487,12 +478,9 @@ private SqlSource getSqlSourceFromAnnotations(Method method, Class parameterT } private SqlSource buildSqlSourceFromStrings(String[] strings, Class parameterTypeClass, LanguageDriver languageDriver) { - final StringBuilder sql = new StringBuilder(); - for (String fragment : strings) { - sql.append(fragment); - sql.append(" "); - } - return languageDriver.createSqlSource(configuration, sql.toString().trim(), parameterTypeClass); + final String sql = Arrays.stream(strings).map(fragment -> fragment + " ").collect(Collectors.joining()); + + return languageDriver.createSqlSource(configuration, sql.trim(), parameterTypeClass); } private SqlCommandType getSqlCommandType(Method method) { diff --git a/src/main/java/org/apache/ibatis/builder/xml/XMLMapperBuilder.java b/src/main/java/org/apache/ibatis/builder/xml/XMLMapperBuilder.java index c944d713002..808a233121b 100644 --- a/src/main/java/org/apache/ibatis/builder/xml/XMLMapperBuilder.java +++ b/src/main/java/org/apache/ibatis/builder/xml/XMLMapperBuilder.java @@ -25,6 +25,7 @@ import java.util.List; import java.util.Map; import java.util.Properties; +import java.util.stream.Stream; import org.apache.ibatis.builder.BaseBuilder; import org.apache.ibatis.builder.BuilderException; @@ -394,9 +395,7 @@ private ResultMapping buildResultMappingFromContext(XNode context, Class resu } private String processNestedResultMappings(XNode context, List resultMappings, Class enclosingType) throws Exception { - if ("association".equals(context.getName()) - || "collection".equals(context.getName()) - || "case".equals(context.getName())) { + if (Stream.of("association", "collection", "case").anyMatch(s -> s.equals(context.getName()))) { if (context.getStringAttribute("select") == null) { validateCollection(context, enclosingType); ResultMap resultMap = resultMapElement(context, resultMappings, enclosingType); diff --git a/src/main/java/org/apache/ibatis/io/JBoss6VFS.java b/src/main/java/org/apache/ibatis/io/JBoss6VFS.java index a5856113be5..da6c40a0021 100644 --- a/src/main/java/org/apache/ibatis/io/JBoss6VFS.java +++ b/src/main/java/org/apache/ibatis/io/JBoss6VFS.java @@ -21,6 +21,7 @@ import java.util.ArrayList; import java.util.Collections; import java.util.List; +import java.util.stream.Collectors; import org.apache.ibatis.logging.Log; import org.apache.ibatis.logging.LogFactory; @@ -56,10 +57,9 @@ String getPathNameRelativeTo(VirtualFile parent) { List getChildren() throws IOException { List objects = invoke(getChildrenRecursively, virtualFile); - List children = new ArrayList<>(objects.size()); - for (Object object : objects) { - children.add(new VirtualFile(object)); - } + List children = objects.stream() + .map(JBoss6VFS.VirtualFile::new) + .collect(Collectors.toCollection(() -> new ArrayList<>(objects.size()))); return children; } } diff --git a/src/main/java/org/apache/ibatis/type/ByteArrayUtils.java b/src/main/java/org/apache/ibatis/type/ByteArrayUtils.java index 3067ce9de6f..636e6d0d5d5 100644 --- a/src/main/java/org/apache/ibatis/type/ByteArrayUtils.java +++ b/src/main/java/org/apache/ibatis/type/ByteArrayUtils.java @@ -15,6 +15,8 @@ */ package org.apache.ibatis.type; +import java.util.stream.IntStream; + /** * @author Clinton Begin */ @@ -33,10 +35,7 @@ static byte[] convertToPrimitiveArray(Byte[] objects) { } static Byte[] convertToObjectArray(byte[] bytes) { - final Byte[] objects = new Byte[bytes.length]; - for (int i = 0; i < bytes.length; i++) { - objects[i] = bytes[i]; - } + final Byte[] objects = IntStream.range(0, bytes.length).mapToObj(i -> bytes[i]).toArray(Byte[]::new); return objects; } } diff --git a/src/test/java/org/apache/ibatis/domain/blog/ComplexImmutableAuthorId.java b/src/test/java/org/apache/ibatis/domain/blog/ComplexImmutableAuthorId.java index 77832447100..496d343af4b 100644 --- a/src/test/java/org/apache/ibatis/domain/blog/ComplexImmutableAuthorId.java +++ b/src/test/java/org/apache/ibatis/domain/blog/ComplexImmutableAuthorId.java @@ -15,6 +15,8 @@ */ package org.apache.ibatis.domain.blog; +import java.util.Objects; + public class ComplexImmutableAuthorId { protected final int id; protected final String email; @@ -58,13 +60,13 @@ public boolean equals(Object o) { if (id != that.id) { return false; } - if (email != null ? !email.equals(that.email) : that.email != null) { + if (!Objects.equals(email, that.email)) { return false; } - if (password != null ? !password.equals(that.password) : that.password != null) { + if (!Objects.equals(password, that.password)) { return false; } - if (username != null ? !username.equals(that.username) : that.username != null) { + if (!Objects.equals(username, that.username)) { return false; }