当前位置: 首页 > 工具软件 > Apache Wicket > 使用案例 >

Apache Wicket Java 8升级仅部分支持lambda

公羊渝
2023-12-01

Apache Wicket开源Java框架的新版本8包含Java 8 ,包括类型。 但是,仅在框架的某些部分中支持使用lambda表达式(Java 8的字幕功能)。

从版本8开始,服务器端,面向组件的Wicket Web框架支持Java 8惯用语,并将Java 8的惯用语和类型应用于Wicket API。 它还具有用于处理Java 8中日期的新类型,可以将其转换并绑定到组件。

[ 15个Java框架使开发人员受益匪浅 哪些工具支持Java的新模块化功能 | 通过InfoWorld的App Dev Report新闻通讯了解编程方面的热门话题。 ]

为什么Wicket仅部分支持lambda

Wicket的开发人员出于性能和内存使用方面的考虑,决定不支持API中的lambda。 因此,子类化仍然是Wicket组件的主要扩展机制。 Apache软件基金会Apache Wicket副总裁Martijn Dashorst说,典型的Wicket应用程序在任何给定时间都有许多内存组件,而对lambda的引用将大大增加该内存占用量。

但是Wicket 8确实为模型和行为的形式提供了lambda的工厂。 Wicket中的工厂是一种用于创建对象的设计模式,从而启用Wicket特定的功能。 此外,根接口模型已成为功能接口; 模型是框架中的数据绑定方法。 结果,开发人员可以在使用模型的地方使用lambda。

Wicket 8中的LambdaModel类型为组件启用类型安全和重构安全的数据绑定。 以前,数据将通过PropertyModel通过使用字符串表达式确定要显示的属性绑定到组件。 LambdaModel可以使IDE轻松执行重构。

Wicket 8的其他功能包括:

  • 采用Java 8的Optional类型,以阐明API。 此类型旨在在事物可能为空的地方的API中使用。 例如,Wicket的AjaxFallbacklink现在使用Optional来表示是使用AJAX还是常规请求处理来单击链接。
  • 不需要重写整个Wicket应用程序即可支持Java8。Dashort表示,迁移具有30,000行Java代码和100页的典型Wicket应用程序大约需要半天的时间。
  • 从先前版本中删除了许多不推荐使用的功能。

哪里可以下载Apache Wicket 8

您可以从项目网站的镜像下载Wicket 8

From: https://www.infoworld.com/article/3276606/apache-wicket-java-8-upgrade-only-partially-supports-lambdas.html

 类似资料: