DefaultConversionService properly converts Object[] to int[]
Closes gh-22410
This commit is contained in:
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright 2002-2018 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.
|
||||
@@ -20,6 +20,7 @@ import org.springframework.core.convert.ConversionFailedException;
|
||||
import org.springframework.core.convert.ConversionService;
|
||||
import org.springframework.core.convert.TypeDescriptor;
|
||||
import org.springframework.core.convert.converter.GenericConverter;
|
||||
import org.springframework.util.ClassUtils;
|
||||
|
||||
/**
|
||||
* Internal utilities for the conversion package.
|
||||
@@ -59,7 +60,7 @@ abstract class ConversionUtils {
|
||||
// yes
|
||||
return true;
|
||||
}
|
||||
if (sourceElementType.getType().isAssignableFrom(targetElementType.getType())) {
|
||||
if (ClassUtils.isAssignable(sourceElementType.getType(), targetElementType.getType())) {
|
||||
// maybe
|
||||
return true;
|
||||
}
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright 2002-2016 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.
|
||||
@@ -133,7 +133,7 @@ public class DefaultConversionServiceTests {
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testStringToByte() throws Exception {
|
||||
public void testStringToByte() {
|
||||
assertEquals(Byte.valueOf("1"), conversionService.convert("1", Byte.class));
|
||||
}
|
||||
|
||||
@@ -155,7 +155,7 @@ public class DefaultConversionServiceTests {
|
||||
|
||||
@Test
|
||||
public void testStringToInteger() {
|
||||
assertEquals(Integer.valueOf("1"), conversionService.convert("1", Integer.class));
|
||||
assertEquals(Integer.valueOf(1), conversionService.convert("1", Integer.class));
|
||||
}
|
||||
|
||||
@Test
|
||||
@@ -165,7 +165,7 @@ public class DefaultConversionServiceTests {
|
||||
|
||||
@Test
|
||||
public void testStringToLong() {
|
||||
assertEquals(Long.valueOf("1"), conversionService.convert("1", Long.class));
|
||||
assertEquals(Long.valueOf(1), conversionService.convert("1", Long.class));
|
||||
}
|
||||
|
||||
@Test
|
||||
@@ -180,7 +180,7 @@ public class DefaultConversionServiceTests {
|
||||
|
||||
@Test
|
||||
public void testFloatToString() {
|
||||
assertEquals("1.0", conversionService.convert(new Float("1.0"), String.class));
|
||||
assertEquals("1.0", conversionService.convert(Float.valueOf("1.0"), String.class));
|
||||
}
|
||||
|
||||
@Test
|
||||
@@ -190,7 +190,7 @@ public class DefaultConversionServiceTests {
|
||||
|
||||
@Test
|
||||
public void testDoubleToString() {
|
||||
assertEquals("1.0", conversionService.convert(new Double("1.0"), String.class));
|
||||
assertEquals("1.0", conversionService.convert(Double.valueOf("1.0"), String.class));
|
||||
}
|
||||
|
||||
@Test
|
||||
@@ -224,12 +224,12 @@ public class DefaultConversionServiceTests {
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testStringToEnum() throws Exception {
|
||||
public void testStringToEnum() {
|
||||
assertEquals(Foo.BAR, conversionService.convert("BAR", Foo.class));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testStringToEnumWithSubclass() throws Exception {
|
||||
public void testStringToEnumWithSubclass() {
|
||||
assertEquals(SubFoo.BAZ, conversionService.convert("BAZ", SubFoo.BAR.getClass()));
|
||||
}
|
||||
|
||||
@@ -244,12 +244,12 @@ public class DefaultConversionServiceTests {
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testIntegerToEnum() throws Exception {
|
||||
public void testIntegerToEnum() {
|
||||
assertEquals(Foo.BAR, conversionService.convert(0, Foo.class));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testIntegerToEnumWithSubclass() throws Exception {
|
||||
public void testIntegerToEnumWithSubclass() {
|
||||
assertEquals(SubFoo.BAZ, conversionService.convert(1, SubFoo.BAR.getClass()));
|
||||
}
|
||||
|
||||
@@ -325,7 +325,7 @@ public class DefaultConversionServiceTests {
|
||||
|
||||
@Test
|
||||
public void testCharacterToNumber() {
|
||||
assertEquals(new Integer(65), conversionService.convert('A', Integer.class));
|
||||
assertEquals(Integer.valueOf(65), conversionService.convert('A', Integer.class));
|
||||
}
|
||||
|
||||
// collection conversion
|
||||
@@ -343,9 +343,9 @@ public class DefaultConversionServiceTests {
|
||||
@SuppressWarnings("unchecked")
|
||||
List<Integer> result = (List<Integer>) conversionService.convert(new String[] {"1", "2", "3"}, TypeDescriptor
|
||||
.valueOf(String[].class), new TypeDescriptor(getClass().getDeclaredField("genericList")));
|
||||
assertEquals(new Integer("1"), result.get(0));
|
||||
assertEquals(new Integer("2"), result.get(1));
|
||||
assertEquals(new Integer("3"), result.get(2));
|
||||
assertEquals(Integer.valueOf(1), result.get(0));
|
||||
assertEquals(Integer.valueOf(2), result.get(1));
|
||||
assertEquals(Integer.valueOf(3), result.get(2));
|
||||
}
|
||||
|
||||
@Test
|
||||
@@ -384,10 +384,6 @@ public class DefaultConversionServiceTests {
|
||||
conversionService.convert(new String[]{"1", "2", "3"}, AbstractList.class);
|
||||
}
|
||||
|
||||
public static enum FooEnum {
|
||||
BAR, BAZ
|
||||
}
|
||||
|
||||
@Test
|
||||
public void convertArrayToString() {
|
||||
String result = conversionService.convert(new String[] {"1", "2", "3"}, String.class);
|
||||
@@ -419,9 +415,9 @@ public class DefaultConversionServiceTests {
|
||||
public void convertStringToArrayWithElementConversion() {
|
||||
Integer[] result = conversionService.convert("1,2,3", Integer[].class);
|
||||
assertEquals(3, result.length);
|
||||
assertEquals(new Integer(1), result[0]);
|
||||
assertEquals(new Integer(2), result[1]);
|
||||
assertEquals(new Integer(3), result[2]);
|
||||
assertEquals(Integer.valueOf(1), result[0]);
|
||||
assertEquals(Integer.valueOf(2), result[1]);
|
||||
assertEquals(Integer.valueOf(3), result[2]);
|
||||
}
|
||||
|
||||
@Test
|
||||
@@ -450,7 +446,7 @@ public class DefaultConversionServiceTests {
|
||||
public void convertArrayToObjectWithElementConversion() {
|
||||
String[] array = new String[] {"3"};
|
||||
Integer result = conversionService.convert(array, Integer.class);
|
||||
assertEquals(new Integer(3), result);
|
||||
assertEquals(Integer.valueOf(3), result);
|
||||
}
|
||||
|
||||
@Test
|
||||
@@ -471,12 +467,12 @@ public class DefaultConversionServiceTests {
|
||||
public void convertObjectToArrayWithElementConversion() {
|
||||
Integer[] result = conversionService.convert(3L, Integer[].class);
|
||||
assertEquals(1, result.length);
|
||||
assertEquals(new Integer(3), result[0]);
|
||||
assertEquals(Integer.valueOf(3), result[0]);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void convertCollectionToArray() {
|
||||
List<String> list = new ArrayList<String>();
|
||||
List<String> list = new ArrayList<>();
|
||||
list.add("1");
|
||||
list.add("2");
|
||||
list.add("3");
|
||||
@@ -488,14 +484,14 @@ public class DefaultConversionServiceTests {
|
||||
|
||||
@Test
|
||||
public void convertCollectionToArrayWithElementConversion() {
|
||||
List<String> list = new ArrayList<String>();
|
||||
List<String> list = new ArrayList<>();
|
||||
list.add("1");
|
||||
list.add("2");
|
||||
list.add("3");
|
||||
Integer[] result = conversionService.convert(list, Integer[].class);
|
||||
assertEquals(new Integer(1), result[0]);
|
||||
assertEquals(new Integer(2), result[1]);
|
||||
assertEquals(new Integer(3), result[2]);
|
||||
assertEquals(Integer.valueOf(1), result[0]);
|
||||
assertEquals(Integer.valueOf(2), result[1]);
|
||||
assertEquals(Integer.valueOf(3), result[2]);
|
||||
}
|
||||
|
||||
@Test
|
||||
@@ -514,9 +510,8 @@ public class DefaultConversionServiceTests {
|
||||
}
|
||||
|
||||
@Test
|
||||
@SuppressWarnings("rawtypes")
|
||||
public void convertStringToCollection() {
|
||||
List result = conversionService.convert("1,2,3", List.class);
|
||||
List<?> result = conversionService.convert("1,2,3", List.class);
|
||||
assertEquals(3, result.size());
|
||||
assertEquals("1", result.get(0));
|
||||
assertEquals("2", result.get(1));
|
||||
@@ -524,9 +519,8 @@ public class DefaultConversionServiceTests {
|
||||
}
|
||||
|
||||
@Test
|
||||
@SuppressWarnings("rawtypes")
|
||||
public void convertStringToCollectionWithElementConversion() throws Exception {
|
||||
List result = (List) conversionService.convert("1,2,3", TypeDescriptor.valueOf(String.class),
|
||||
List<?> result = (List) conversionService.convert("1,2,3", TypeDescriptor.valueOf(String.class),
|
||||
new TypeDescriptor(getClass().getField("genericList")));
|
||||
assertEquals(3, result.size());
|
||||
assertEquals(1, result.get(0));
|
||||
@@ -535,9 +529,8 @@ public class DefaultConversionServiceTests {
|
||||
}
|
||||
|
||||
@Test
|
||||
@SuppressWarnings("rawtypes")
|
||||
public void convertEmptyStringToCollection() {
|
||||
Collection result = conversionService.convert("", Collection.class);
|
||||
Collection<?> result = conversionService.convert("", Collection.class);
|
||||
assertEquals(0, result.size());
|
||||
}
|
||||
|
||||
@@ -545,44 +538,37 @@ public class DefaultConversionServiceTests {
|
||||
public void convertCollectionToObject() {
|
||||
List<Long> list = Collections.singletonList(3L);
|
||||
Long result = conversionService.convert(list, Long.class);
|
||||
assertEquals(new Long(3), result);
|
||||
assertEquals(Long.valueOf(3), result);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void convertCollectionToObjectWithElementConversion() {
|
||||
List<String> list = Collections.singletonList("3");
|
||||
Integer result = conversionService.convert(list, Integer.class);
|
||||
assertEquals(new Integer(3), result);
|
||||
assertEquals(Integer.valueOf(3), result);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void convertCollectionToObjectAssignableTarget() throws Exception {
|
||||
Collection<String> source = new ArrayList<String>();
|
||||
Collection<String> source = new ArrayList<>();
|
||||
source.add("foo");
|
||||
Object result = conversionService.convert(source, new TypeDescriptor(getClass().getField("assignableTarget")));
|
||||
assertEquals(source, result);
|
||||
}
|
||||
|
||||
@Test
|
||||
@SuppressWarnings("rawtypes")
|
||||
public void convertCollectionToObjectWithCustomConverter() throws Exception {
|
||||
List<String> source = new ArrayList<String>();
|
||||
public void convertCollectionToObjectWithCustomConverter() {
|
||||
List<String> source = new ArrayList<>();
|
||||
source.add("A");
|
||||
source.add("B");
|
||||
conversionService.addConverter(new Converter<List, ListWrapper>() {
|
||||
@Override
|
||||
public ListWrapper convert(List source) {
|
||||
return new ListWrapper(source);
|
||||
}
|
||||
});
|
||||
conversionService.addConverter(List.class, ListWrapper.class, ListWrapper::new);
|
||||
ListWrapper result = conversionService.convert(source, ListWrapper.class);
|
||||
assertSame(source, result.getList());
|
||||
}
|
||||
|
||||
@Test
|
||||
@SuppressWarnings("rawtypes")
|
||||
public void convertObjectToCollection() {
|
||||
List result = conversionService.convert(3L, List.class);
|
||||
List<?> result = conversionService.convert(3L, List.class);
|
||||
assertEquals(1, result.size());
|
||||
assertEquals(3L, result.get(0));
|
||||
}
|
||||
@@ -593,19 +579,19 @@ public class DefaultConversionServiceTests {
|
||||
List<Integer> result = (List<Integer>) conversionService.convert(3L, TypeDescriptor.valueOf(Long.class),
|
||||
new TypeDescriptor(getClass().getField("genericList")));
|
||||
assertEquals(1, result.size());
|
||||
assertEquals(new Integer(3), result.get(0));
|
||||
assertEquals(Integer.valueOf(3), result.get(0));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void convertArrayToArray() {
|
||||
public void convertStringArrayToIntegerArray() {
|
||||
Integer[] result = conversionService.convert(new String[] {"1", "2", "3"}, Integer[].class);
|
||||
assertEquals(new Integer(1), result[0]);
|
||||
assertEquals(new Integer(2), result[1]);
|
||||
assertEquals(new Integer(3), result[2]);
|
||||
assertEquals(Integer.valueOf(1), result[0]);
|
||||
assertEquals(Integer.valueOf(2), result[1]);
|
||||
assertEquals(Integer.valueOf(3), result[2]);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void convertArrayToPrimitiveArray() {
|
||||
public void convertStringArrayToIntArray() {
|
||||
int[] result = conversionService.convert(new String[] {"1", "2", "3"}, int[].class);
|
||||
assertEquals(1, result[0]);
|
||||
assertEquals(2, result[1]);
|
||||
@@ -613,7 +599,39 @@ public class DefaultConversionServiceTests {
|
||||
}
|
||||
|
||||
@Test
|
||||
public void convertArrayToWrapperArray() {
|
||||
public void convertIntegerArrayToIntegerArray() {
|
||||
Integer[] result = conversionService.convert(new Integer[] {1, 2, 3}, Integer[].class);
|
||||
assertEquals(Integer.valueOf(1), result[0]);
|
||||
assertEquals(Integer.valueOf(2), result[1]);
|
||||
assertEquals(Integer.valueOf(3), result[2]);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void convertIntegerArrayToIntArray() {
|
||||
int[] result = conversionService.convert(new Integer[] {1, 2, 3}, int[].class);
|
||||
assertEquals(1, result[0]);
|
||||
assertEquals(2, result[1]);
|
||||
assertEquals(3, result[2]);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void convertObjectArrayToIntegerArray() {
|
||||
Integer[] result = conversionService.convert(new Object[] {1, 2, 3}, Integer[].class);
|
||||
assertEquals(Integer.valueOf(1), result[0]);
|
||||
assertEquals(Integer.valueOf(2), result[1]);
|
||||
assertEquals(Integer.valueOf(3), result[2]);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void convertObjectArrayToIntArray() {
|
||||
int[] result = conversionService.convert(new Object[] {1, 2, 3}, int[].class);
|
||||
assertEquals(1, result[0]);
|
||||
assertEquals(2, result[1]);
|
||||
assertEquals(3, result[2]);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void convertByteArrayToWrapperArray() {
|
||||
byte[] byteArray = new byte[] {1, 2, 3};
|
||||
Byte[] converted = conversionService.convert(byteArray, Byte[].class);
|
||||
assertThat(converted, equalTo(new Byte[]{1, 2, 3}));
|
||||
@@ -661,16 +679,16 @@ public class DefaultConversionServiceTests {
|
||||
|
||||
@Test
|
||||
public void convertCollectionToCollection() throws Exception {
|
||||
Set<String> foo = new LinkedHashSet<String>();
|
||||
Set<String> foo = new LinkedHashSet<>();
|
||||
foo.add("1");
|
||||
foo.add("2");
|
||||
foo.add("3");
|
||||
@SuppressWarnings("unchecked")
|
||||
List<Integer> bar = (List<Integer>) conversionService.convert(foo, TypeDescriptor.forObject(foo),
|
||||
new TypeDescriptor(getClass().getField("genericList")));
|
||||
assertEquals(new Integer(1), bar.get(0));
|
||||
assertEquals(new Integer(2), bar.get(1));
|
||||
assertEquals(new Integer(3), bar.get(2));
|
||||
assertEquals(Integer.valueOf(1), bar.get(0));
|
||||
assertEquals(Integer.valueOf(2), bar.get(1));
|
||||
assertEquals(Integer.valueOf(3), bar.get(2));
|
||||
}
|
||||
|
||||
@Test
|
||||
@@ -683,8 +701,8 @@ public class DefaultConversionServiceTests {
|
||||
|
||||
@Test
|
||||
@SuppressWarnings("rawtypes")
|
||||
public void convertCollectionToCollectionNotGeneric() throws Exception {
|
||||
Set<String> foo = new LinkedHashSet<String>();
|
||||
public void convertCollectionToCollectionNotGeneric() {
|
||||
Set<String> foo = new LinkedHashSet<>();
|
||||
foo.add("1");
|
||||
foo.add("2");
|
||||
foo.add("3");
|
||||
@@ -706,39 +724,39 @@ public class DefaultConversionServiceTests {
|
||||
List<Integer> bar = (List<Integer>) conversionService.convert(values,
|
||||
TypeDescriptor.forObject(values), new TypeDescriptor(getClass().getField("genericList")));
|
||||
assertEquals(3, bar.size());
|
||||
assertEquals(new Integer(1), bar.get(0));
|
||||
assertEquals(new Integer(2), bar.get(1));
|
||||
assertEquals(new Integer(3), bar.get(2));
|
||||
assertEquals(Integer.valueOf(1), bar.get(0));
|
||||
assertEquals(Integer.valueOf(2), bar.get(1));
|
||||
assertEquals(Integer.valueOf(3), bar.get(2));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void collection() {
|
||||
List<String> strings = new ArrayList<String>();
|
||||
List<String> strings = new ArrayList<>();
|
||||
strings.add("3");
|
||||
strings.add("9");
|
||||
@SuppressWarnings("unchecked")
|
||||
List<Integer> integers = (List<Integer>) conversionService.convert(strings,
|
||||
TypeDescriptor.collection(List.class, TypeDescriptor.valueOf(Integer.class)));
|
||||
assertEquals(new Integer(3), integers.get(0));
|
||||
assertEquals(new Integer(9), integers.get(1));
|
||||
assertEquals(Integer.valueOf(3), integers.get(0));
|
||||
assertEquals(Integer.valueOf(9), integers.get(1));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void convertMapToMap() throws Exception {
|
||||
Map<String, String> foo = new HashMap<String, String>();
|
||||
Map<String, String> foo = new HashMap<>();
|
||||
foo.put("1", "BAR");
|
||||
foo.put("2", "BAZ");
|
||||
@SuppressWarnings("unchecked")
|
||||
Map<Integer, FooEnum> map = (Map<Integer, FooEnum>) conversionService.convert(foo,
|
||||
Map<Integer, Foo> map = (Map<Integer, Foo>) conversionService.convert(foo,
|
||||
TypeDescriptor.forObject(foo), new TypeDescriptor(getClass().getField("genericMap")));
|
||||
assertEquals(FooEnum.BAR, map.get(1));
|
||||
assertEquals(FooEnum.BAZ, map.get(2));
|
||||
assertEquals(Foo.BAR, map.get(1));
|
||||
assertEquals(Foo.BAZ, map.get(2));
|
||||
}
|
||||
|
||||
@Test
|
||||
@SuppressWarnings("rawtypes")
|
||||
public void convertHashMapValuesToList() {
|
||||
Map<String, Integer> hashMap = new LinkedHashMap<String, Integer>();
|
||||
Map<String, Integer> hashMap = new LinkedHashMap<>();
|
||||
hashMap.put("1", 1);
|
||||
hashMap.put("2", 2);
|
||||
List converted = conversionService.convert(hashMap.values(), List.class);
|
||||
@@ -747,14 +765,14 @@ public class DefaultConversionServiceTests {
|
||||
|
||||
@Test
|
||||
public void map() {
|
||||
Map<String, String> strings = new HashMap<String, String>();
|
||||
Map<String, String> strings = new HashMap<>();
|
||||
strings.put("3", "9");
|
||||
strings.put("6", "31");
|
||||
@SuppressWarnings("unchecked")
|
||||
Map<Integer, Integer> integers = (Map<Integer, Integer>) conversionService.convert(strings,
|
||||
TypeDescriptor.map(Map.class, TypeDescriptor.valueOf(Integer.class), TypeDescriptor.valueOf(Integer.class)));
|
||||
assertEquals(new Integer(9), integers.get(3));
|
||||
assertEquals(new Integer(31), integers.get(6));
|
||||
assertEquals(Integer.valueOf(9), integers.get(3));
|
||||
assertEquals(Integer.valueOf(31), integers.get(6));
|
||||
}
|
||||
|
||||
@Test
|
||||
@@ -847,13 +865,13 @@ public class DefaultConversionServiceTests {
|
||||
|
||||
@Test(expected = ConverterNotFoundException.class)
|
||||
public void convertObjectToObjectNoValueOfMethodOrConstructor() {
|
||||
conversionService.convert(new Long(3), SSN.class);
|
||||
conversionService.convert(Long.valueOf(3), SSN.class);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void convertObjectToObjectFinderMethod() {
|
||||
TestEntity e = conversionService.convert(1L, TestEntity.class);
|
||||
assertEquals(new Long(1), e.getId());
|
||||
assertEquals(Long.valueOf(1), e.getId());
|
||||
}
|
||||
|
||||
@Test
|
||||
@@ -866,29 +884,24 @@ public class DefaultConversionServiceTests {
|
||||
@Test
|
||||
public void convertObjectToObjectFinderMethodWithIdConversion() {
|
||||
TestEntity entity = conversionService.convert("1", TestEntity.class);
|
||||
assertEquals(new Long(1), entity.getId());
|
||||
assertEquals(Long.valueOf(1), entity.getId());
|
||||
}
|
||||
|
||||
@Test
|
||||
public void convertCharArrayToString() throws Exception {
|
||||
public void convertCharArrayToString() {
|
||||
String converted = conversionService.convert(new char[] {'a', 'b', 'c'}, String.class);
|
||||
assertThat(converted, equalTo("a,b,c"));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void convertStringToCharArray() throws Exception {
|
||||
public void convertStringToCharArray() {
|
||||
char[] converted = conversionService.convert("a,b,c", char[].class);
|
||||
assertThat(converted, equalTo(new char[]{'a', 'b', 'c'}));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void convertStringToCustomCharArray() throws Exception {
|
||||
conversionService.addConverter(new Converter<String, char[]>() {
|
||||
@Override
|
||||
public char[] convert(String source) {
|
||||
return source.toCharArray();
|
||||
}
|
||||
});
|
||||
public void convertStringToCustomCharArray() {
|
||||
conversionService.addConverter(String.class, char[].class, String::toCharArray);
|
||||
char[] converted = conversionService.convert("abc", char[].class);
|
||||
assertThat(converted, equalTo(new char[] {'a', 'b', 'c'}));
|
||||
}
|
||||
@@ -905,16 +918,11 @@ public class DefaultConversionServiceTests {
|
||||
|
||||
@Test
|
||||
public void convertCannotOptimizeArray() {
|
||||
conversionService.addConverter(new Converter<Byte, Byte>() {
|
||||
@Override
|
||||
public Byte convert(Byte source) {
|
||||
return (byte) (source + 1);
|
||||
}
|
||||
});
|
||||
conversionService.addConverter(Byte.class, Byte.class, source -> (byte) (source + 1));
|
||||
byte[] byteArray = new byte[] {1, 2, 3};
|
||||
byte[] converted = conversionService.convert(byteArray, byte[].class);
|
||||
assertNotSame(byteArray, converted);
|
||||
assertTrue(Arrays.equals(new byte[] {2, 3, 4}, converted));
|
||||
assertArrayEquals(new byte[]{2, 3, 4}, converted);
|
||||
}
|
||||
|
||||
@Test
|
||||
@@ -953,7 +961,7 @@ public class DefaultConversionServiceTests {
|
||||
watch.stop();
|
||||
watch.start("convert 4,000,000 manually");
|
||||
for (int i = 0; i < 4000000; i++) {
|
||||
new Integer(3).toString();
|
||||
Integer.valueOf(3).toString();
|
||||
}
|
||||
watch.stop();
|
||||
// System.out.println(watch.prettyPrint());
|
||||
@@ -962,11 +970,11 @@ public class DefaultConversionServiceTests {
|
||||
|
||||
// test fields and helpers
|
||||
|
||||
public List<Integer> genericList = new ArrayList<Integer>();
|
||||
public List<Integer> genericList = new ArrayList<>();
|
||||
|
||||
public Stream<Integer> genericStream;
|
||||
|
||||
public Map<Integer, FooEnum> genericMap = new HashMap<Integer, FooEnum>();
|
||||
public Map<Integer, Foo> genericMap = new HashMap<>();
|
||||
|
||||
public EnumSet<Foo> enumSet;
|
||||
|
||||
|
||||
Reference in New Issue
Block a user