为什么 Java 把我的 IsActive 字段名改成 Active?

我在类里定义了一个 IsActive 字段,给它加了注释,结果在 Swagger 页面上它的名字变成了 active,而且也看不到注释了:

@Data
public class NodeInfoData {
   
   
    
    @NotNull
    @Schema(example = "true", description = "是否可用。可用为 true,被停用为 false", required = true)
    private 
private Object createTestInstance(Class<?> clazz, Object outerInstance) throws Exception { Object obj; // 判断是否为非静态内部类 if (isNonStaticInnerClass(clazz)) { // 获取DeclaredConstructor,第一个参数是外部类实例 Constructor<?> constructor = clazz.getDeclaredConstructor(clazz.getDeclaringClass()); constructor.setAccessible(true); // 非静态内部类构造器可能不可见 obj = constructor.newInstance(outerInstance); } else { // 普通类或静态嵌套类:使用无参构造 Constructor<?> constructor = clazz.getDeclaredConstructor(); obj = constructor.newInstance(); } for (Field field : clazz.getDeclaredFields()) { field.setAccessible(true); Class<?> fieldType = field.getType(); Object value; // 处理 List<T> 且 T 是当前类的内部类 if (List.class.isAssignableFrom(fieldType) && field.getGenericType() instanceof ParameterizedType) { ParameterizedType paramType = (ParameterizedType) field.getGenericType(); Type genericArg = paramType.getActualTypeArguments()[0]; if (genericArg instanceof Class<?>) { Class<?> listElementType = (Class<?>) genericArg; // 检查是否是当前类声明的内部类 if (listElementType.getDeclaringClass() == clazz) { Object innerObj = createTestInstance(listElementType, obj); // 传入当前 obj 作为 outer value = new ArrayList<>(Collections.singletonList(innerObj)); } else { value = new ArrayList<>(); } } else { value = new ArrayList<>(); } } // 基本类型填充 else if (fieldType == String.class) { value = "test"; } else if (fieldType == int.class || fieldType == Integer.class) { value = 1; } else if (fieldType == long.class || fieldType == Long.class) { value = 1L; } else if (fieldType == double.class || fieldType == Double.class) { value = 1.0; } else if (fieldType == float.class || fieldType == Float.class) { value = 1.0f; } else if (fieldType == boolean.class || fieldType == Boolean.class) { value = true; } else if (fieldType == BigDecimal.class) { value = BigDecimal.ONE; // ✅ 正确:使用 BigDecimal 实例 } else if (fieldType.isEnum()) { Object[] constants = fieldType.getEnumConstants(); value = constants.length > 0 ? constants[0] : null; } else { // 其他复杂类型递归处理(防止循环引用) value = createTestInstanceForNonPrimitive(fieldType, obj); } field.set(obj, value); } return obj; } 这个方法会将我的字段名称变成小写开头,我不允许他修改我的字段名
最新发布
12-05
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

surfirst

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值