[BUG]以isXXX命名的布尔型变量,使用lombok注解自动生成setXXX()的方法,反序列化时无法正确为变量赋值,只能手写setIsXXX()方法规避
- Dominant language
- Java
- Stars
- 4.4k
- Forks
- 613
- Avg merge
- 1d 22h
- Merged PRs (30d)
- 6
Description
### 问题描述
以isXXX命名的布尔型变量,使用lombok注解自动生成setXXX()的方法,反序列化时无法正确为变量赋值,只能手写setIsXXX()方法规避

### 环境信息
*请填写以下信息:*
- OS信息: [e.g.:CentOS 8.4.2105 4Core 3.10GHz 16 GB]
- JDK信息: [e.g.:Openjdk 1.8.0_312]
- 版本信息:[e.g.:Fastjson2 2.0.52]
### 重现步骤
*如何操作可以重现该问题:*
1. 使用 `JSON.parseObject` 方法
2. 输入 `...` 数据
3. 出现 `...` 错误
```java
/*
* Copyright (c) Huawei Technologies Co., Ltd. 2024-2024. All rights reserved.
*/
package Demo;
import com.alibaba.fastjson2.JSON;
import com.alibaba.fastjson2.JSONObject;
import lombok.Data;
@Data
public class Demo {
boolean isAsc = false;
/* public void setIsAsc(boolean isAsc){
this.isAsc=isAsc;
}*/
public static void main(String[] args) {
String string = "{\"isAsc\":true}";
System.out.println(JSON.parseObject(string, Demo.class));
}
}
```
### 期待的正确结果
*对您期望发生的结果进行清晰简洁的描述。*
isAsc=true
### 相关日志输出
*请复制并粘贴任何相关的日志输出。*
#### 附加信息
*如果你还有其他需要提供的信息,可以在这里填写(可以提供截图、视频等)。*
Contributor guide
Research direction
Start with the Java reproduction using JSON.parseObject and the Demo class containing the isAsc field. Trace how the deserializer resolves the boolean property and Lombok-generated setter, then add a regression test for {"isAsc":true}; done means deserialization produces isAsc=true without a handwritten setter.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- java
- Domain
- backend
- Issue type
- Bug
- Difficulty
- 3/5
- Estimated time
- 1-2 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 45/100