/** * Special case of {@link #convertType(Object, Class)} when target is collection and * when component type is known. */ @SuppressWarnings("unchecked") public <C extends Collection<T>, T> C convertToCollection(final Object value, final Class<? extends Collection> destinationType, final Class<T> componentType) { if (value == null) { return null; } // check same instances if (ClassUtil.isInstanceOf(value, destinationType)) { return (C) value; } final CollectionConverter collectionConverter; if (componentType == null) { collectionConverter = new CollectionConverter(destinationType, Object.class); } else { collectionConverter = new CollectionConverter(destinationType, componentType); } return (C) collectionConverter.convert(value); }
/** * Special case of {@link #convertType(Object, Class)} when target is collection and * when component type is known. */ @SuppressWarnings("unchecked") public <T> Collection<T> convertToCollection(Object value, Class<? extends Collection> destinationType, Class componentType) { if (value == null) { return null; } // check same instances if (ReflectUtil.isInstanceOf(value, destinationType)) { return (Collection<T>) value; } if (componentType == null) { componentType = Object.class; } CollectionConverter collectionConverter = new CollectionConverter(destinationType, componentType); return collectionConverter.convert(value); }
new CollectionConverter(this, destinationType, Object.class);
new CollectionConverter(this, destinationType, Object.class);
@Test void testCollectionsWithComponentType() { TypeConverterManager typeConverterManager = TypeConverterManager.get(); CollectionConverter cc = new CollectionConverter(typeConverterManager, List.class, String.class); List<String> list1 = (List<String>) cc.convert(arri(1, 2, 3)); assertNotEquals(listo(1, 2, 3), list1); assertEquals(listo("1", "2", "3"), list1); list1 = (List<String>) cc.convert("1,2,3"); assertEquals(listo("1","2","3"), list1); cc = new CollectionConverter(typeConverterManager, List.class, Integer.class); list1 = (List<String>) cc.convert("1,2,3"); assertEquals(listo(1, 2, 3), list1); }
/** * Special case of {@link #convertType(Object, Class)} when target is collection and * when component type is known. */ @SuppressWarnings("unchecked") public <C extends Collection<T>, T> C convertToCollection(final Object value, final Class<? extends Collection> destinationType, final Class<T> componentType) { if (value == null) { return null; } // check same instances if (ClassUtil.isInstanceOf(value, destinationType)) { return (C) value; } final CollectionConverter collectionConverter; if (componentType == null) { collectionConverter = new CollectionConverter(destinationType, Object.class); } else { collectionConverter = new CollectionConverter(destinationType, componentType); } return (C) collectionConverter.convert(value); }
new CollectionConverter(this, destinationType, Object.class);