Skip to content

Commit ccaaa6a

Browse files
committed
DefaultConverter: fix bug converting to Collection
It is straightforward to convert from a Collection subclass (e.g., ArrayList) to a Collection. It is just a simple cast. This bug prevented such casts from taking place, due to over-eager precedence of Collection-specific handling. We really need to rewrite this stuff; see: #109
1 parent 52acc85 commit ccaaa6a

File tree

1 file changed

+6
-4
lines changed

1 file changed

+6
-4
lines changed

src/main/java/org/scijava/convert/DefaultConverter.java

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -294,13 +294,15 @@ private Collection<Object> createCollection(final Class<?> type) {
294294
@Override
295295
@Deprecated
296296
public boolean canConvert(final Class<?> src, final Type dest) {
297-
297+
298298
// Handle array types, including generic array types.
299299
if (isArray(dest)) return true;
300-
300+
301301
// Handle parameterized collection types.
302-
if (dest instanceof ParameterizedType && isCollection(dest)) {
303-
return createCollection(GenericUtils.getClass(dest)) != null;
302+
if (dest instanceof ParameterizedType && isCollection(dest) &&
303+
createCollection(GenericUtils.getClass(dest)) != null)
304+
{
305+
return true;
304306
}
305307

306308
return super.canConvert(src, dest);

0 commit comments

Comments
 (0)