diff --git a/testable-core/src/main/java/com/alibaba/testable/core/model/ConstructionOption.java b/testable-core/src/main/java/com/alibaba/testable/core/model/ConstructionOption.java index 3bb623f..9344f25 100644 --- a/testable-core/src/main/java/com/alibaba/testable/core/model/ConstructionOption.java +++ b/testable-core/src/main/java/com/alibaba/testable/core/model/ConstructionOption.java @@ -3,8 +3,15 @@ package com.alibaba.testable.core.model; public enum ConstructionOption { /** + * 不初始化循环嵌套类型的成员 * allow members with same type nested inside itself be initialized as null */ - ALLOW_NULL_FOR_NESTED_TYPE + EXCEPT_LOOP_NESTING, + + /** + * 不初始化接口和抽象类型的成员 + * allow members of interface or abstract class type be initialized as null + */ + EXCEPT_INTERFACE } diff --git a/testable-core/src/main/java/com/alibaba/testable/core/tool/OmniConstructor.java b/testable-core/src/main/java/com/alibaba/testable/core/tool/OmniConstructor.java index 9449ecd..58a211e 100644 --- a/testable-core/src/main/java/com/alibaba/testable/core/tool/OmniConstructor.java +++ b/testable-core/src/main/java/com/alibaba/testable/core/tool/OmniConstructor.java @@ -10,7 +10,7 @@ import java.lang.reflect.*; import java.util.*; import static com.alibaba.testable.core.constant.ConstPool.DOLLAR; -import static com.alibaba.testable.core.model.ConstructionOption.ALLOW_NULL_FOR_NESTED_TYPE; +import static com.alibaba.testable.core.model.ConstructionOption.EXCEPT_LOOP_NESTING; /** * @author flin @@ -26,11 +26,12 @@ public class OmniConstructor { * 快速创建任意指定类型的测试对象 * * @param clazz 期望的对象类型 + * @param options 可选参数 * @return 返回新创建的对象 */ public static T newInstance(Class clazz, ConstructionOption... options) { T ins = newInstance(clazz, new HashSet>(INITIAL_CAPACITY)); - if (ins == null || CollectionUtil.contains(options, ALLOW_NULL_FOR_NESTED_TYPE)) { + if (ins == null || CollectionUtil.contains(options, EXCEPT_LOOP_NESTING)) { return ins; } return handleCircleReference(ins); @@ -41,11 +42,12 @@ public class OmniConstructor { * * @param clazz 期望的对象类型 * @param size 数组大小 + * @param options 可选参数 * @return 返回新创建的对象数组 */ public static T[] newArray(Class clazz, int size, ConstructionOption... options) { T[] array = (T[])newArray(clazz, size, new HashSet>(INITIAL_CAPACITY)); - if (CollectionUtil.contains(options, ALLOW_NULL_FOR_NESTED_TYPE)) { + if (CollectionUtil.contains(options, EXCEPT_LOOP_NESTING)) { return array; } return handleCircleReference(array);