diff --git a/processor/src/main/java/org/mapstruct/ap/internal/model/ContainerMappingMethod.java b/processor/src/main/java/org/mapstruct/ap/internal/model/ContainerMappingMethod.java index 608ed8b17..171a69a0e 100644 --- a/processor/src/main/java/org/mapstruct/ap/internal/model/ContainerMappingMethod.java +++ b/processor/src/main/java/org/mapstruct/ap/internal/model/ContainerMappingMethod.java @@ -20,7 +20,6 @@ package org.mapstruct.ap.internal.model; import java.util.List; import java.util.Set; -import javax.lang.model.type.TypeKind; import org.mapstruct.ap.internal.model.assignment.Assignment; import org.mapstruct.ap.internal.model.common.Parameter; @@ -79,27 +78,6 @@ public abstract class ContainerMappingMethod extends NormalTypeMappingMethod { return loopVariableName; } - public String getDefaultValue() { - TypeKind kind = getResultElementType().getTypeMirror().getKind(); - switch ( kind ) { - case BOOLEAN: - return "false"; - case BYTE: - case SHORT: - case INT: - case CHAR: /*"'\u0000'" would have been better, but depends on platformencoding */ - return "0"; - case LONG: - return "0L"; - case FLOAT: - return "0.0f"; - case DOUBLE: - return "0.0d"; - default: - return "null"; - } - } - public abstract Type getResultElementType(); public String getIndex1Name() { diff --git a/processor/src/main/java/org/mapstruct/ap/internal/model/common/Type.java b/processor/src/main/java/org/mapstruct/ap/internal/model/common/Type.java index 219c02ea0..5603de2fa 100644 --- a/processor/src/main/java/org/mapstruct/ap/internal/model/common/Type.java +++ b/processor/src/main/java/org/mapstruct/ap/internal/model/common/Type.java @@ -758,10 +758,11 @@ public class Type extends ModelElement implements Comparable { return "0"; } if ( "char".equals( getName() ) ) { - return "'\\u0000'"; + //"'\u0000'" would have been better, but depends on platform encoding + return "0"; } if ( "double".equals( getName() ) ) { - return "0.0"; + return "0.0d"; } if ( "float".equals( getName() ) ) { return "0.0f"; diff --git a/processor/src/main/resources/org/mapstruct/ap/internal/model/IterableMappingMethod.ftl b/processor/src/main/resources/org/mapstruct/ap/internal/model/IterableMappingMethod.ftl index c616ad510..502e99fc1 100644 --- a/processor/src/main/resources/org/mapstruct/ap/internal/model/IterableMappingMethod.ftl +++ b/processor/src/main/resources/org/mapstruct/ap/internal/model/IterableMappingMethod.ftl @@ -35,7 +35,7 @@ <#if existingInstanceMapping> <#-- we can't clear an existing array, so we've got to clear by setting values to default --> for (int ${index2Name} = 0; ${index2Name} < ${resultName}.length; ${index2Name}++ ) { - ${resultName}[${index2Name}] = ${defaultValue}; + ${resultName}[${index2Name}] = ${resultElementType.null}; } return<#if returnType.name != "void"> ${resultName}; <#else> diff --git a/processor/src/main/resources/org/mapstruct/ap/internal/model/StreamMappingMethod.ftl b/processor/src/main/resources/org/mapstruct/ap/internal/model/StreamMappingMethod.ftl index ca4230274..eadfa67b5 100644 --- a/processor/src/main/resources/org/mapstruct/ap/internal/model/StreamMappingMethod.ftl +++ b/processor/src/main/resources/org/mapstruct/ap/internal/model/StreamMappingMethod.ftl @@ -37,7 +37,7 @@ <#if existingInstanceMapping> <#-- we can't clear an existing array, so we've got to clear by setting values to default --> for (int ${index2Name} = 0; ${index2Name} < ${resultName}.length; ${index2Name}++ ) { - ${resultName}[${index2Name}] = ${defaultValue}; + ${resultName}[${index2Name}] = ${resultElementType.null}; } return<#if returnType.name != "void"> ${resultName}; <#else>