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

买机箱网站邵阳网站开发

买机箱网站,邵阳网站开发,得到app公司,网站建设业务开展方案https://openjdk.java.net/jeps/359概述了新的Java功能#xff0c;该功能可能会/将在某些将来的Java版本中实现。 JEP建议使用一种新型的“班级”#xff1a;记录。 JEP中的示例内容如下#xff1a; record Range( int lo, int hi) { public Range { if (lo hi) /* ref… https://openjdk.java.net/jeps/359概述了新的Java功能该功能可能会/将在某些将来的Java版本中实现。 JEP建议使用一种新型的“班级”记录。 JEP中的示例内容如下 record Range( int lo, int hi) { public Range { if (lo hi) /* referring here to the implicit constructor parameters */ throw new IllegalArgumentException(String.format( (%d,%d) , lo, hi)); } } 本质上一条记录将是一个类该类只打算在构造函数中设置final字段。 到今天为止JEP还允许类具有的任何其他成员但从本质上说记录就是记录它是纯数据核心可能没有功能。 记录的描述简短而切合实际并且消除了很多我们需要用Java 13或更少的语言编码此类或将要实现的版本记录的样板。 上面使用常规Java的代码如下所示 public class Range { final int lo; final int hi; public Range( int lo, int hi) { if (lo hi) /* referring here to the implicit constructor parameters */ throw new IllegalArgumentException(String.format( (%d,%d) , lo, hi)); this .lo lo; this .hi hi; } } 考虑到我的Java :: Geci代码生成项目这对于代码生成器来说是一个巨大的挑战它弥合了当今与新功能在所有生产平台上都可用的那一天之间的差距。 因此我开始考虑如何开发此生成器并且遇到了一些问题。 Java :: Geci框架只能将可编译项目转换为另一个可编译项目。 它不能像将不完整的源代码转换为完整版本的其他代码生成器那样工作该源代码无法将不完整的源代码未经代码生成器的修改就无法编译。 这是因为Java :: Geci在测试阶段起作用。 为了进入测试阶段必须先编译代码。 这是一个众所周知的折衷方案是一项设计决策。 在大多数情况下当Java :: Geci有用时这很容易解决。 另一方面我们得到的好处是生成器不需要配置管理例如读取和解释属性或XML文件。 它们仅提供API并且从测试中调用它们的代码通过它配置生成器。 最大的优点是您甚至可以通过生成器调用的方法引用lambda或对象实例的形式提供回调以便这些生成器在其工作的某些方面可以具有完全开放的结构。 为什么在这种情况下如此重要 记录生成相当简单不需要任何复杂的配置事实上它根本不需要任何配置。 另一方面可compilable -gt; compilable compilable -gt; compilable限制正在影响它。 如果您开始使用Java 8和Java :: Geci创建记录那么您的手动代码将如下所示 Geci ( record ) public class Range { final int lo; final int hi; } 这不会编译因为在代码生成开始之前的第一次编译时默认构造函数不会初始化字段。 因此这些字段不能为final Geci ( record ) public class Range { int lo; int hi; } 运行发电机我们将得到 package javax0.geci.tests.record; import javax0.geci.annotations.Geci; Geci ( record ) public final class Range { final int lo; final int hi; //editor-fold idrecord public Range( final int lo, final int hi) { this .lo lo; this .hi hi; } public int getLo() { return lo; } public int getHi() { return hi; } Override public int hashCode() { return java.util.Objects.hash(lo, hi); } Override public boolean equals(Object o) { if ( this o) return true ; if (o null || getClass() ! o.getClass()) return false ; Range that (Range) o; return java.util.Objects.equals(that.lo, lo) java.util.Objects.equals(that.hi, hi); } ///editor-fold } 这个生成器实际上所做的是 它生成构造函数 将JEP的要求将类和字段转换为final 生成字段的吸气剂 为该类生成equals()和hashCode()方法 如果该类的void方法具有与该类相同的名称尽管不区分大小写例如 public void Range( double hi, long lo) { if (lo hi) /* referring here to the implicit constructor parameters */ throw new IllegalArgumentException(String.format( (%d,%d) , lo, hi)); } 然后发电机将 从生成的构造函数中调用该方法 修改方法的参数列表以匹配当前字段列表。 public void Range( final int lo, final int hi) { if (lo hi) /* referring here to the implicit constructor parameters */ throw new IllegalArgumentException(String.format( (%d,%d) , lo, hi)); } //editor-fold idrecord public Range( final int lo, final int hi) { Range(lo, hi); this .lo lo; this .hi hi; } 请注意这种生成方法试图表现出JEP中建议的最接近实际record的可能并生成可立即转换为新语法的代码。 这就是验证器方法必须与类具有相同名称的原因。 当转换为真实记录时所有要做的就是删除将方法转换为构造函数的void关键字删除参数列表因为它将隐含在JEP中定义并删除编辑器折叠之间的所有生成代码。 也在首次执行生成器时自动生成。 手动输入的代码的修改是Java :: Geci的新功能它是由Record生成器的需求触发的旨在克服可compilable -gt; compilable的缺点compilable -gt; compilable compilable -gt; compilable限制。 后续文章中将详细介绍Java 1.:Geci的下一个1.3.0版本中提供的生成器如何使用此功能。 带走 本文的重点是即使在Java记录可用之前也可以将其与Java 8、9一起使用。 翻译自: https://www.javacodegeeks.com/2019/10/java-record.html
http://wiki.neutronadmin.com/news/124627/

相关文章:

  • 曲阜网站建设价格专科学什么专业好就业前景好
  • 没注册可以做网站吗工作总结及工作计划
  • 外包公司排行济南seo排名优化推广
  • wordpress博客站模板下载广东网站建设专业公司哪家好
  • 厦门网站建设网站制作怎么在网站做支付端口对接
  • 网站推广效果不好原因wordpress副标题标签
  • 织梦保险网站源码除了亚马逊还有啥网站做海淘
  • 公司网站域名com好还是cn好中企动力是干啥的
  • 海南综合网站网站建设验收内容
  • 建网站怎么弄网站开发费如何入账
  • 5台电脑做视频网站服务器河北住房和城乡建设局网站
  • 建设厅网站官网湛江的高铁站建在哪里
  • 网站开发的趋势开发一个平台要多少钱
  • 中国建设银行网站首页怎么销户长沙建站价格
  • 专门做旅行用品的网站外包公司是怎么回事
  • 网站设计不同的原因seo工具优化软件
  • 北京网络网站建设公司谷德设计网打不开
  • 备案网站名称攻略厦门专业网站
  • 西宁建设工程官方网站制作简单门户网站步骤
  • 外国公司做网站系统开发报告
  • 如何提高网站的点击量产品网站怎样做外部链接
  • 国内自助建站有什网站可以做设计赚钱
  • 怎么看网站建设有多久网站建设补贴
  • 无锡网页建站公司广州网站建设海珠新科
  • 怎么修改公司网站内容网站开发对企业的关键
  • 软件网站关键词优化盐城工程造价信息网
  • 网站备案快速备案久久建筑网免费下载怎么没有了
  • 网站建设制作公司哪家义乌网站建设电话
  • 深圳网站设计精选刻邯郸市有搞网站服服务的吗
  • 网站竞价如何做wordpress to joomla