Browse Source

Use StringJoiner where possible to simplify String joining

pull/22545/head
stsypanov 7 years ago committed by Juergen Hoeller
parent
commit
cb4d6f097c
  1. 16
      spring-core/src/main/java/org/springframework/util/ObjectUtils.java
  2. 11
      spring-expression/src/main/java/org/springframework/expression/spel/ast/InlineList.java
  3. 12
      spring-web/src/main/java/org/springframework/http/HttpHeaders.java
  4. 16
      spring-webflux/src/main/java/org/springframework/web/reactive/result/condition/AbstractRequestCondition.java
  5. 16
      spring-webmvc/src/main/java/org/springframework/web/servlet/mvc/condition/AbstractRequestCondition.java

16
spring-core/src/main/java/org/springframework/util/ObjectUtils.java

@ -21,6 +21,7 @@ import java.util.Arrays; @@ -21,6 +21,7 @@ import java.util.Arrays;
import java.util.Collection;
import java.util.Map;
import java.util.Optional;
import java.util.StringJoiner;
import org.springframework.lang.Nullable;
@ -709,18 +710,11 @@ public abstract class ObjectUtils { @@ -709,18 +710,11 @@ public abstract class ObjectUtils {
if (length == 0) {
return EMPTY_ARRAY;
}
StringBuilder sb = new StringBuilder();
for (int i = 0; i < length; i++) {
if (i == 0) {
sb.append(ARRAY_START);
}
else {
sb.append(ARRAY_ELEMENT_SEPARATOR);
}
sb.append(String.valueOf(array[i]));
StringJoiner sj = new StringJoiner(ARRAY_ELEMENT_SEPARATOR, ARRAY_START, ARRAY_END);
for (Object o : array) {
sj.add(String.valueOf(o));
}
sb.append(ARRAY_END);
return sb.toString();
return sj.toString();
}
/**

11
spring-expression/src/main/java/org/springframework/expression/spel/ast/InlineList.java

@ -19,6 +19,7 @@ package org.springframework.expression.spel.ast; @@ -19,6 +19,7 @@ package org.springframework.expression.spel.ast;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
import java.util.StringJoiner;
import org.springframework.asm.MethodVisitor;
import org.springframework.expression.EvaluationException;
@ -102,17 +103,13 @@ public class InlineList extends SpelNodeImpl { @@ -102,17 +103,13 @@ public class InlineList extends SpelNodeImpl {
@Override
public String toStringAST() {
StringBuilder sb = new StringBuilder("{");
StringJoiner sj = new StringJoiner(",", "{", "}");
// String ast matches input string, not the 'toString()' of the resultant collection, which would use []
int count = getChildCount();
for (int c = 0; c < count; c++) {
if (c > 0) {
sb.append(",");
}
sb.append(getChild(c).toStringAST());
sj.add(getChild(c).toStringAST());
}
sb.append("}");
return sb.toString();
return sj.toString();
}
/**

12
spring-web/src/main/java/org/springframework/http/HttpHeaders.java

@ -633,15 +633,11 @@ public class HttpHeaders implements MultiValueMap<String, String>, Serializable @@ -633,15 +633,11 @@ public class HttpHeaders implements MultiValueMap<String, String>, Serializable
* as specified by the {@code Accept-Charset} header.
*/
public void setAcceptCharset(List<Charset> acceptableCharsets) {
StringBuilder builder = new StringBuilder();
for (Iterator<Charset> iterator = acceptableCharsets.iterator(); iterator.hasNext();) {
Charset charset = iterator.next();
builder.append(charset.name().toLowerCase(Locale.ENGLISH));
if (iterator.hasNext()) {
builder.append(", ");
}
StringJoiner joiner = new StringJoiner(", ");
for (Charset charset : acceptableCharsets) {
joiner.add(charset.name().toLowerCase(Locale.ENGLISH));
}
set(ACCEPT_CHARSET, builder.toString());
set(ACCEPT_CHARSET, joiner.toString());
}
/**

16
spring-webflux/src/main/java/org/springframework/web/reactive/result/condition/AbstractRequestCondition.java

@ -17,7 +17,7 @@ @@ -17,7 +17,7 @@
package org.springframework.web.reactive.result.condition;
import java.util.Collection;
import java.util.Iterator;
import java.util.StringJoiner;
import org.springframework.lang.Nullable;
@ -50,16 +50,12 @@ public abstract class AbstractRequestCondition<T extends AbstractRequestConditio @@ -50,16 +50,12 @@ public abstract class AbstractRequestCondition<T extends AbstractRequestConditio
@Override
public String toString() {
StringBuilder builder = new StringBuilder("[");
for (Iterator<?> iterator = getContent().iterator(); iterator.hasNext();) {
Object expression = iterator.next();
builder.append(expression.toString());
if (iterator.hasNext()) {
builder.append(getToStringInfix());
}
String infix = getToStringInfix();
StringJoiner joiner = new StringJoiner(infix, "[", "]");
for (Object expression : getContent()) {
joiner.add(expression.toString());
}
builder.append("]");
return builder.toString();
return joiner.toString();
}
/**

16
spring-webmvc/src/main/java/org/springframework/web/servlet/mvc/condition/AbstractRequestCondition.java

@ -17,7 +17,7 @@ @@ -17,7 +17,7 @@
package org.springframework.web.servlet.mvc.condition;
import java.util.Collection;
import java.util.Iterator;
import java.util.StringJoiner;
import org.springframework.lang.Nullable;
@ -74,16 +74,12 @@ public abstract class AbstractRequestCondition<T extends AbstractRequestConditio @@ -74,16 +74,12 @@ public abstract class AbstractRequestCondition<T extends AbstractRequestConditio
@Override
public String toString() {
StringBuilder builder = new StringBuilder("[");
for (Iterator<?> iterator = getContent().iterator(); iterator.hasNext();) {
Object expression = iterator.next();
builder.append(expression.toString());
if (iterator.hasNext()) {
builder.append(getToStringInfix());
}
String infix = getToStringInfix();
StringJoiner joiner = new StringJoiner(infix, "[", "]");
for (Object expression : getContent()) {
joiner.add(expression.toString());
}
builder.append("]");
return builder.toString();
return joiner.toString();
}
}

Loading…
Cancel
Save