当前位置: 首页 > news >正文

c语言做网站吗黄石本土做网站的公司

c语言做网站吗,黄石本土做网站的公司,农业网站怎么做,外包的利与弊在 Java 开发中#xff0c;Lombok 被广泛用于减少样板代码#xff0c;如 Getter、Setter、构造函数等。然而#xff0c;在与像 EasyExcel 这样依赖反射机制的库一起使用时#xff0c;可能会遇到一些意想不到的问题。本文将深入探讨 Lombok 与 EasyExcel 之间的兼容性问题Lombok 被广泛用于减少样板代码如 Getter、Setter、构造函数等。然而在与像 EasyExcel 这样依赖反射机制的库一起使用时可能会遇到一些意想不到的问题。本文将深入探讨 Lombok 与 EasyExcel 之间的兼容性问题分析原因并提供相应的解决方案和建议。 简单版 如果是需要映射的实体类老老实实的不要去用Lombok的注解不要去用就对了不用就没有兼容性或者其他可能的冲突。 一、问题背景 在使用 Lombok 的 Getter 和 Setter 注解简化代码时开发者可能会发现 EasyExcel 无法正确赋值对象的属性读取的结果为 null。反射调用失败导致数据解析错误或抛出异常。 这种情况尤其常见于使用 Lombok 自动生成的 Getter 和 Setter 方法与 EasyExcel 等依赖反射的库结合使用时。 二、Lombok 的工作原理 Lombok 通过在编译期修改抽象语法树AST为类生成必要的代码如 Getter、Setter、构造函数等。这意味着 Lombok 并不会在源码中显式地生成方法而是在编译后的字节码中添加。IDE 需要安装 Lombok 插件才能在编辑器中正确解析 Lombok 注解否则可能会报错或无法自动完成。 三、EasyExcel 的反射机制 EasyExcel 在读取和写入 Excel 文件时依赖 Java 的反射机制来 根据属性的 Getter 和 Setter 方法进行赋值和取值。要求方法命名符合 JavaBean 规范如 getXxx()、setXxx()。 如果反射机制无法正确找到或访问这些方法就会导致数据无法正确解析或写入。 四、问题原因分析 Lombok 生成的方法在运行时不可见 如果 Lombok 未正确配置编译器可能不会生成预期的 Getter 和 Setter 方法。运行时反射无法找到对应的方法导致属性赋值失败。 方法可见性或命名不符合规范 Lombok 生成的方法可能由于配置不当导致访问权限不是 public。方法命名不符合 JavaBean 规范反射无法识别。 IDE 或构建工具未正确配置 Lombok 缺少 Lombok 插件导致编译器或编辑器无法正确处理 Lombok 注解。构建工具如 Maven、Gradle中未正确添加 Lombok 依赖。 使用了 Lombok 的特定特性 使用了 Lombok 的 Accessors、Builder 等注解更改了方法的生成方式或命名影响反射访问。 五、解决方案和建议 1. 手动编写 Getter 和 Setter 方法 建议对于需要被反射访问的属性手动编写标准的 Getter 和 Setter 方法。 public class ProductRankImportExcelVO {private BigDecimal grossProfit;public BigDecimal getGrossProfit() {return grossProfit;}public void setGrossProfit(BigDecimal grossProfit) {this.grossProfit grossProfit;}// 其他属性... }优点 确保方法的可见性和命名符合 JavaBean 规范。避免 Lombok 可能带来的编译或运行时问题。 2. 确保 Lombok 正确配置 安装 IDE 插件确保在使用的 IDE如 IntelliJ IDEA、Eclipse中安装了 Lombok 插件。 构建工具依赖在 Maven 或 Gradle 配置中正确添加 Lombok 依赖。 !-- Maven 依赖示例 -- dependencygroupIdorg.projectlombok/groupIdartifactIdlombok/artifactIdversion1.18.24/versionscopeprovided/scope /dependency3. 使用 Delombok 检查生成代码 Delombok 是 Lombok 提供的工具可以展开 Lombok 注解生成实际的源码。 步骤 运行 Delombok使用 Lombok 提供的命令行工具或在 IDE 中运行 Delombok。检查生成代码查看生成的 Getter、Setter 方法是否正确命名和可见性是否符合要求。调整代码根据生成结果调整 Lombok 注解或手动编写必要的方法。 4. 避免使用复杂的 Lombok 特性 谨慎使用 Accessors该注解可以自定义 Getter、Setter 的生成方式可能影响方法命名。 Accessors(fluent true) private String name; // 会生成 name() 和 name(String name) 方法而非 getName()、setName()避免影响反射的方法生成尽量使用基本的 Lombok 注解如 Getter、Setter并确保生成的方法符合规范。 5. 检查方法的可见性和命名 方法应为 public 访问级别。符合 JavaBean 规范方法命名应为 getXxx()、setXxx()其中 Xxx 为属性名首字母大写。 6. 确保属性和方法类型一致 类型匹配Setter 方法的参数类型应与属性类型一致。避免方法重载不要对 Getter、Setter 方法进行重载防止反射机制混淆。 7. 测试和验证 单元测试编写测试用例验证属性能否正确赋值和取值。调试模式在运行时调试查看反射调用是否成功有无异常抛出。 六、示例演示 问题复现 Data // Lombok 注解 public class ProductRankImportExcelVO {private BigDecimal grossProfit;// 其他属性... }// 读取 Excel ListProductRankImportExcelVO productList ExcelUtils.read(bytes, 产品, ProductRankImportExcelVO.class); // 结果productList 的 grossProfit 属性全为 null解决方案 public class ProductRankImportExcelVO {private BigDecimal grossProfit;public BigDecimal getGrossProfit() {return grossProfit;}public void setGrossProfit(BigDecimal grossProfit) {this.grossProfit grossProfit;}// 其他属性... }// 重新读取 Excel ListProductRankImportExcelVO productList ExcelUtils.read(bytes, 产品, ProductRankImportExcelVO.class); // 结果grossProfit 属性成功赋值七、总结 在使用 Lombok 与 EasyExcel 等依赖反射机制的库时需要注意 手动编写关键属性的 Getter 和 Setter 方法确保方法可被反射访问。正确配置 Lombok包括 IDE 插件和构建工具依赖确保方法正确生成。遵循 JavaBean 规范方法命名和可见性应符合要求。谨慎使用 Lombok 的高级特性避免更改方法的生成方式或命名。 通过上述措施可以有效解决 Lombok 与 EasyExcel 的兼容性问题确保数据解析和处理的正确性。 八、建议 权衡 Lombok 的使用虽然 Lombok 可以减少样板代码但在关键场景下手动编写代码可以提高可靠性和可读性。统一团队规范在团队中制定 Lombok 的使用规范明确在哪些情况下可以使用 Lombok哪些情况下应手动编码。持续学习和关注保持对 Lombok 和 EasyExcel 等库的更新和社区讨论的关注及时了解可能的兼容性问题和解决方案。 希望本文能帮助您深入理解 Lombok 与 EasyExcel 的兼容性问题并在实际开发中加以注意避免类似问题的发生。如有任何疑问欢迎交流讨论
http://www.hkea.cn/news/14357913/

相关文章:

  • 网站排版的优点中信国际建设公司网站
  • 为什么建设长虹网站建设一个视频教学网站
  • wordpress能做多大的站wordpress 查看密码
  • 网站源码调试做网站多少流量可以做广告
  • 苏州网站推广软件那些网站可以做团购
  • 公司网站建设内容建议搜狗推广管家
  • 失信人被执行人查询沈阳seo优化排名公司
  • 苏州吴江建设局招标网站备案不关闭网站怎么样
  • 贵阳网站设计与开发怎么做东莞市网络seo推广企业
  • 网站建设 博采百度广告费一般多少钱
  • 网站建设个人网站推荐好的简历制作网站
  • 哈尔滨网站建设的公司哪家好深圳网站设计南京
  • 怎么建设网站广饶县住房和城乡建设局网站
  • 神州网站制作html怎么写
  • 商业网站是什么青岛网站商城设计
  • 怎么建设自己的论坛网站马鞍山天立建设网站
  • 网站框架地图怎么自己制作图片
  • 17zwd一起做业网站建设部网站首页
  • 大庆城市投资建设网站进广州最新政策
  • 科技企业网站制作最有创意的广告语30条
  • 注册好了域名怎么开始做网站网站改备案
  • 什么网站能免费做推广最大郑州网站建设公司
  • 如何上传到网站根目录闵行网站制作设计公司
  • 做网站技术人员百度关键词价格计算
  • 新办公司网上核名在哪个网站做安平谁做网站好
  • 古装摄影网站建设方案深圳互助资金盘网站开发
  • 网站支付怎么做的昆明做凡科网站
  • 哪个网站有免费的模板什么是主页
  • 合作制作网站避免视觉效果混淆。
  • 移动网站不备案吗html企业网站模板免费下载