diff --git a/spring-expression/src/main/java/org/springframework/expression/spel/support/ReflectiveConstructorResolver.java b/spring-expression/src/main/java/org/springframework/expression/spel/support/ReflectiveConstructorResolver.java index 667e4c18b80..82a307f6b9c 100644 --- a/spring-expression/src/main/java/org/springframework/expression/spel/support/ReflectiveConstructorResolver.java +++ b/spring-expression/src/main/java/org/springframework/expression/spel/support/ReflectiveConstructorResolver.java @@ -1,5 +1,5 @@ /* - * Copyright 2002-2017 the original author or authors. + * Copyright 2002-2019 the original author or authors. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -62,7 +62,7 @@ public class ReflectiveConstructorResolver implements ConstructorResolver { Arrays.sort(ctors, (c1, c2) -> { int c1pl = c1.getParameterCount(); int c2pl = c2.getParameterCount(); - return (c1pl < c2pl ? -1 : (c1pl > c2pl ? 1 : 0)); + return Integer.compare(c1pl, c2pl); }); Constructor closeMatch = null; diff --git a/spring-expression/src/main/java/org/springframework/expression/spel/support/StandardTypeComparator.java b/spring-expression/src/main/java/org/springframework/expression/spel/support/StandardTypeComparator.java index 94b5b25d57d..e2e6d11c7f9 100644 --- a/spring-expression/src/main/java/org/springframework/expression/spel/support/StandardTypeComparator.java +++ b/spring-expression/src/main/java/org/springframework/expression/spel/support/StandardTypeComparator.java @@ -1,5 +1,5 @@ /* - * Copyright 2002-2017 the original author or authors. + * Copyright 2002-2019 the original author or authors. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -83,20 +83,16 @@ public class StandardTypeComparator implements TypeComparator { return leftBigInteger.compareTo(rightBigInteger); } else if (leftNumber instanceof Long || rightNumber instanceof Long) { - // Don't call Long.compare here - only available on JDK 1.7+ - return compare(leftNumber.longValue(), rightNumber.longValue()); + return Long.compare(leftNumber.longValue(), rightNumber.longValue()); } else if (leftNumber instanceof Integer || rightNumber instanceof Integer) { - // Don't call Integer.compare here - only available on JDK 1.7+ - return compare(leftNumber.intValue(), rightNumber.intValue()); + return Integer.compare(leftNumber.intValue(), rightNumber.intValue()); } else if (leftNumber instanceof Short || rightNumber instanceof Short) { - // Don't call Short.compare here - only available on JDK 1.7+ - return compare(leftNumber.shortValue(), rightNumber.shortValue()); + return leftNumber.shortValue() - rightNumber.shortValue(); } else if (leftNumber instanceof Byte || rightNumber instanceof Byte) { - // Don't call Short.compare here - only available on JDK 1.7+ - return compare(leftNumber.byteValue(), rightNumber.byteValue()); + return leftNumber.byteValue() - rightNumber.byteValue(); } else { // Unknown Number subtypes -> best guess is double multiplication @@ -116,21 +112,4 @@ public class StandardTypeComparator implements TypeComparator { throw new SpelEvaluationException(SpelMessage.NOT_COMPARABLE, left.getClass(), right.getClass()); } - - private static int compare(long x, long y) { - return (x < y ? -1 : (x > y ? 1 : 0)); - } - - private static int compare(int x, int y) { - return (x < y ? -1 : (x > y ? 1 : 0)); - } - - private static int compare(short x, short y) { - return x - y; - } - - private static int compare(byte x, byte y) { - return x - y; - } - }