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

域名注册后怎么建网站平面设计广告设计培训班

域名注册后怎么建网站,平面设计广告设计培训班,天津网站推广宣传,原创作文网站lombok 自动使用我喜欢布兰登#xff08;Brandon #xff09;在博客文章中比较Project Lombok #xff0c; AutoValue和Immutables的建议 #xff0c;而这篇文章试图做到这一点。 我已经简要概述了Project Lombok #xff0c; AutoValue和Immutables #xff0c;但是这篇… lombok 自动使用 我喜欢布兰登Brandon 在博客文章中比较Project Lombok AutoValue和Immutables的建议 而这篇文章试图做到这一点。 我已经简要概述了Project Lombok AutoValue和Immutables 但是这篇文章有所不同因为它突出了它们之间的异同。 Lombok AutoValue和Immutables有很多相同之处我尝试用以下单个描述性句子总结这些相似之处LombokAutoValue和Immutables使用注释处理为值对象类所使用的常见操作生成样板代码。 本文的其余部分将更详细地探讨这些相似之处并对比这三种方法。 代码生成 LombokAutoValue和Immutables均旨在从简洁的代码表示形式生成详细的样板代码这些代码表示形式专注于高级业务逻辑而将实现的低级细节留给代码生成。 常见的对象方法例如toString equalsObject和hashCode很重要但需要正确编写。 容易犯这些错误即使最初正确地编写了这些错误包括通过IDE生成但在对类产生影响的其他更改时也可以忽略它们。 价值对象 Lombok AutoValue和Immutables均支持生成“ 值对象” 。 尽管AutoValue严格执行值对象的生成但如果指定了Modifiable 则Immutables允许生成的对象是可修改的并且Lombok在其生成的类中使用Set和Data等批注支持多级修改。 超越价值对象 AutoValue专注于值对象的生成并基于模板类中的抽象方法支持字段构造函数/生成器具体访问器方法的生成以及常见方法equals(Object) hashCode()和toString()的实现。 Immutables提供的功能类似于AutoValue提供的功能并添加了使用 Value.Modifiable生成可修改类的功能 。 不可变对象还提供其他功能 包括 单例实例 预先计算的哈希码 实例实习 可自定义的equalsObjecthashCode和toString实现包括从中排除字段 基本和高级序列化 Lombok提供了类似于具有Value批注的AutoValue的值类生成功能并提供了使用Data批注生成可修改类的功能。 Lombok还提供其他功能 包括 资源清理 记录器字段生成 同步对象锁 潜入检查的异常 基于注释处理 Lombok AutoValue和Immutables都通过注释处理从更简洁的模板代码生成了更多冗长的样板代码。 每个都包含一个在其JAR文件的META-INF/services区域javax.annotation.processing.Processor定义的javax.annotation.processing.Processor 作为javac编译器一部分的标准注释处理器发现过程的一部分 。 并非所有注释处理都相同 尽管LombokAutoValue和Immutables都通过javac进行注释处理 但是Lombok如何使用注释处理的细节与AutoValue和Immutables的处理方法不同。 AutoValue和Immutables在更常规的意义上使用注释处理并从源生成源。 由AutoValue和Immutables生成的类源代码的名称与模板类不同实际上是扩展了模板类。 AutoValue和Immutables都读取模板类并在Java源代码中生成一个具有自己名称的全新类该类具有所有生成的方法和字段。 这避免了与模板类的任何名称冲突并且使模板类源代码和生成的类源代码在同一IDE项目中的混合相当容易因为它们实际上是不同的类。 通过注释处理生成AutoValue 通过注释处理生成不可变对象 Lombok通过与AutoValue和Immutables不同的注释处理来实现生成。 Lombok生成具有与“模板”源代码相同的类名的已编译.class文件并将生成的方法添加到此已编译版本中。 开发人员仅在查看.java文件时会看到简洁的模板代码而在查看.class文件时会看到源代码中不存在的方法的编译后的.class文件。 Lombok生成的不是另一个源文件而是原始源的增强编译版本。 有一个delombok选项可以与Lombok一起使用以查看增强的.class文件背后生成的源代码是什么样子但该项目的真正目的是从简洁的模板源直接转换为增强的编译类而无需使用或使用中间增强功能。源文件。 delombok选项可用于查看生成的源的外观或者更重要的是可以在将其与工具混淆以使源简洁的模板.java文件和生成的类生成的类不一致的情况下使用.class同名的.class文件。 Lombok通过注释处理生成 Lombok的注释处理方法不像AutoValue和Immutables所采用的方法那样传统并且包括Lombok的创建者在内的一些人将这种方法称为“ hack” 。 Neildo的帖子Lombok – Trick Explained中很好地解释了Lombok的“技巧”或“ hack”并引用了内容丰富的OpenJDK编译概述 。 围绕Lombok的方法引起争议的主要原因密切相关并且是它使用了非标准的API因此很难与IDE和执行自己的编译的其他工具例如javadoc 很好地集成。 由于AutoValue和Immutables自然会使用新的类名生成源代码因此任何传统工具和IDE都可以将生成的源代码与模板源代码一起使用而不会出现任何重大问题。 异同摘要 特性 Lombok计划 自动值 不可变的 注释 涵盖版本 1.16.8 2016年 1.2 2016 2.2.8 2016年 此帖子使用的版本 起源年份 2009年 2014年 2014年 执照 麻省理工 也 阿帕奇2 阿帕奇2 全部开源 最低Java 1.6 1.6 1.7 支持的最旧的Java版本 依存关系 ASM 用于Eclipse集成 ASM 可选 运行时依赖项 Guava 编译时依赖包括的库 javax.annotation.processing.Processor lombok.launch.AnnotationProcessorHider $ AnnotationProcessor com.google.auto.value.processor.AutoAnnotationProcessor com.google.auto.value.processor.AutoValueBuilderProcessor com.google.auto.value.processor.AutoValueProcessor org.immutables.processor.ProxyProcessor 标准注释处理器规范位置 生成的源与模板源的关系 增强的生成类替换模板源 生成的源扩展了模板源 Lombok仅显示带有“ delombok”选项的生成源 访问生成的源 指定delombok选项 默认 默认 查看/控制生成的源代码 生成方法 equalsObject hashCode toString 构造 /生成器 访问器 设置器 equalsObjecthashCodetoString构造/生成器访问器 equalsObject hashCode toString 构造 /生成器 访问器 设置器 不变程度 允许使用字段级Set进行完全可变但在需要不可变性时提供Value 加强严格的不变性 “ 偏重于不变性 ”但提供了类级别的 Value.Modifiable AutoValue的意见最多Lombok的意见最少 奖励功能 资源清理 不可变或可变 偷偷地抛出检查异常 对象同步锁 记录注释 更多 … 忠实于价值客体的概念 记录的最佳做法 样式定制 序列化 包括JSON 预先计算的哈希码 更多… 选择时的注意事项 LombokAutoValue和Immutables是类似的工具包它们提供类似的好处并且这三种方法中的任何一种都可以被广泛的应用程序成功使用。 但是在选择使用哪个工具箱时可以考虑它们之间的差异。 Lombok生成具有与模板相同的包和类名称的类而AutoValue和Immutables生成扩展模板类并具有自己的类名的类但包相同。 希望已编译的.class文件具有与模板类完全相同的包和名称的开发人员将首选Lombok。 AutoValue是这三个工具包中最自以为是的而Lombok则是最不自以为是的。 希望严格执行“值对象”特征的开发人员可能更喜欢AutoValue。 AutoValue和Immutables使用标准注释处理而Lombok使用非标准注释处理方法。 希望避免非标准依赖关系的开发人员将倾向于使用AutoValue或Immutables。 这三个工具箱都支持某种程度的自定义并且希望自定义所生成代码的开发人员可能希望选择允许他们以所需方式自定义所生成代码的工具箱。 Lombok提供了一种配置系统 该系统允许将生成的代码的多个方面调整为所需的约定。 JDK 1.6支持AutoValue和Lombok但Immutables需要JDK 1.7。 结论 LombokAutoValue和Immutables有很多共同点并且全部三个都可以用来从简单的模板文件生成值类。 但是它们各自提供不同的优势和功能这可能会导致它们中的任何一个相对于其他开发者更具吸引力这取决于开发者的个人情况。 翻译自: https://www.javacodegeeks.com/2016/06/lombok-autovalue-immutables.htmllombok 自动使用
http://www.pierceye.com/news/95939/

相关文章:

  • 做网站放到百度上需要什么查看wordpress使用什么主题
  • 深圳企业网站seo郑州汉狮专业做网站公司
  • 广东网站建设多少钱辛集专业网站建设
  • 怎样做网站公司的销售小程序推广计划怎么赚钱
  • 网站开发文档编写wordpress小说站群
  • 南宁网站开发推广网站html模板下载
  • 网络编辑的网站建设题二手域名交易平台
  • 定制网站开发商业计划书贵南县网站建设公司
  • 如何免费发布个人网站网站项目需求分析
  • 太原免费网站建设网站开发合作协议书
  • 深圳龙华做网站上海响应式网站制作公司
  • 招投标 网站建设专业型网站和个人网站
  • 网站建设需要那些基础增城线上教学
  • 专注移动网站建设免费咨询电脑维修
  • 六里桥做网站公司惠州做网站 百度优化
  • 做网站怎么选择上市公司wordpress 进销存
  • 做视频网站用哪个模板昆明贤邦网站建设
  • 自建网站工具wordpress仿内涵段子
  • 做推广最好的网站是哪个菜鸟网站建设
  • 首钢建设公司网站微信网站怎么做的好处
  • 西安网站开发费用网站即将 模板
  • 个人做商业网站需要什么热门网站建设代理
  • 企业网站手机端和pc端一个后台吗企业网站管理系统的运维服务
  • 北京官网开发优化游戏性能的软件
  • 网站开发选asp还是hph集约化网站群建设情况
  • 做网站域名重要吗10000ip网站怎么做
  • 途牛的旅游网站是谁做的wordpress 注册用户列表
  • 如何编辑网站新吁网站建设
  • 网站开发采集工具免费引流在线推广
  • 全面的锦州网站建设西安建筑工程有限公司