Skip to content

Commit 30291c5

Browse files
awalter17ctrueden
authored andcommitted
Remove unnecessary code from DefaultConverter
This also fixes the corresponding test. Since the NullConverter now handles both null src and dest, the null logic was unnecessary. Additionally, the casting logic was unnecessary due to the CastingConverter. The array and number logic is still necessary, since there's no converters for List to arrays and the number converters only handle widening conversions.
1 parent 2574a4e commit 30291c5

File tree

2 files changed

+3
-16
lines changed

2 files changed

+3
-16
lines changed

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

Lines changed: 1 addition & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -80,16 +80,9 @@ public Object convert(final Object src, final Type dest) {
8080

8181
@Override
8282
public <T> T convert(final Object src, final Class<T> dest) {
83-
if (dest == null) return null;
84-
if (src == null) return ConversionUtils.getNullValue(dest);
85-
8683
// ensure type is well-behaved, rather than a primitive type
8784
final Class<T> saneDest = ConversionUtils.getNonprimitiveType(dest);
8885

89-
// cast the existing object, if possible
90-
if (ConversionUtils.canCast(src, saneDest)) return ConversionUtils.cast(
91-
src, saneDest);
92-
9386
// Handle array types
9487
if (isArray(dest)) {
9588
@SuppressWarnings("unchecked")
@@ -302,15 +295,9 @@ public boolean canConvert(final Class<?> src, final Type dest) {
302295
@Override
303296
@Deprecated
304297
public boolean canConvert(final Class<?> src, final Class<?> dest) {
305-
306-
if (src == null || dest == null) return true;
307-
308298
// ensure type is well-behaved, rather than a primitive type
309299
final Class<?> saneDest = ConversionUtils.getNonprimitiveType(dest);
310-
311-
// OK if the existing object can be casted
312-
if (ConversionUtils.canCast(src, saneDest)) return true;
313-
300+
314301
// OK for numerical conversions
315302
if (ConversionUtils.canCast(ConversionUtils.getNonprimitiveType(src),
316303
Number.class) &&

src/test/java/org/scijava/convert/ConverterTest.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -94,11 +94,11 @@ public void testCanConvert() {
9494

9595
@Test
9696
public void testCanConvertToGenericCollection() {
97-
final DefaultConverter dc = new DefaultConverter();
97+
final CastingConverter cc = new CastingConverter();
9898

9999
final Field destField = ClassUtils.getField(getClass(), "collection");
100100
final Type destType = GenericUtils.getFieldType(destField, getClass());
101-
assertTrue(dc.canConvert(ArrayList.class, destType));
101+
assertTrue(cc.canConvert(ArrayList.class, destType));
102102
}
103103

104104
private static class NumberConverter extends AbstractConverter<Number, Number> {

0 commit comments

Comments
 (0)