diff --git a/src/main/java/com/wordnik/swagger/codegen/CodegenModelFactory.java b/src/main/java/com/wordnik/swagger/codegen/CodegenModelFactory.java index a24e1ed4aca..b369623f37c 100644 --- a/src/main/java/com/wordnik/swagger/codegen/CodegenModelFactory.java +++ b/src/main/java/com/wordnik/swagger/codegen/CodegenModelFactory.java @@ -24,10 +24,11 @@ public final class CodegenModelFactory { typeMapping.put(type, implementation); } + @SuppressWarnings("unchecked") public static T newInstance(CodegenModelType type) { - @SuppressWarnings("unchecked") Class classType = (Class) typeMapping.get(type); + Class classType = typeMapping.get(type); try { - return classType.newInstance(); + return (T) (classType != null ? classType : type.getDefaultImplementation()).newInstance(); } catch (InstantiationException e) { throw new RuntimeException(e); } catch (IllegalAccessException e) {