如何用AI技术降噪? QCon 广州“音视频架构实践”专场给你答案! 了解详情
写点什么

Xtend 2.4.3 扩展活动注解支持文件系统

  • 2013 年 9 月 23 日
  • 本文字数:877 字

    阅读完需:约 3 分钟

2.4 版本的 Xtend 引入了活动注解的概念,开发者能够通过它参与到将Xtend 源码转换成Java 源码的流程。而现在Xtend 2.4.3 版本中的活动注解则具有了访问文件系统的能力。

Xtend 是一种静态类型编程语言,它会翻译成 Java 源码。虽然该语言与 Java 语言非常相近,但是它在 Java 的基础上扩展了很多目前 Java 依然缺失的语法结构。例如,开发者能够通过 Xtend 使用 Lambda 表达式、类型推理、扩展方法等内容。

我们通常会在 Eclipse Java IDE 中使用 Xtend。从表面上看我们是保存了一个 Xtend 源文件,但在后台它会被立即翻译成 Java 源码。因为 Xtend 和 Java 能够在一个项目中共存,所以我们可以在 Xtend 源码中引用 Java 类和方法,反之亦然。另外,Xtend 引入的语法结构能够被应用到已有的 Java 类中。所以,我们可以扩展已有的功能,哪怕它们来自于第三方类库。

引入活动注解的目的是为了影响 Xtend 和 Java 源码之间的转换流程。它的工作原理类似于宏或者 Objective-C 编译器指令,同时它还有助于减少样板代码。例如,如果我们对一个普通的 Xtend 类使用“@singleton”注解,那么生成的 Java 类将自动包含反映该设计模式的必要的代码结构。即使这些结构将会在晚些时候生成,但在其他的 Xtend 类中依然能立即使用它们。上面的“@singleton”类将暴露一个 getInstance() 方法,而这仅仅是因为应用了一个注解。

通过接受一个文件系统 API,开发者现在能够使用活动注解创建源码之外的制品。例如,Xtend 的首席开发人员 Sven Efftinge 在一个博客中展示了如何使用活动注解支持国际化。他对一个包含了静态字符串常量的 Xtend 类添加了注解,之后通过注解引导生成了一个包含访问常量的静态方法的 Java 类和一个包含字符串值的相关属性文件。注解的另一种用途是自动生成源码文件的签名或者摘要:

依然是临时的活动注解 API 拥有了一个新的编译器阶段和 API,用户能够通过它们在编译期间与文件系统进行交互。这一方面有助于根据配置文件或者普通的项目资源生成签名,另一方面也可以根据代码更新或者全部生成这样的资源。

查看英文原文 Xtend 2.4.3 Extends Active Annotations to the File System

2013 年 9 月 23 日 08:40570
用户头像

发布了 321 篇内容, 共 109.6 次阅读, 收获喜欢 12 次。

关注

评论

发布
暂无评论
发现更多内容

松哥手把手教你定制 Spring Security 中的表单登录

江南一点雨

Java spring Spring Boot spring security

码农理财(一)

北漂码农有话说

理财

一种练好英语口语的方法

董一凡

学习

Redis稳定性实践

心平气和

redis 缓存 稳定性

更聪明地学习,而不是苦读——《如何高效学习》

mzlogin

学习

sync.Map源码分析

陈思敏捷

源码 源码分析 Go 语言

OneData之OneModel

KAMI

大数据 数据中台 数据治理 OneData

OneData之OneService

KAMI

大数据 数据中台 数据治理 OneData

如何在一台计算机上安装多个 JDK 版本

mghio

Java jdk 版本管理工具

Python 核心技术与进阶 list & tuple

Bonaparte

《零基础学 Java》 FAQ 之 7-Java 中的内存是怎么分配的

臧萌

Java JVM

OpenResty部署配置和日志切割

wong

nginx centos openresty

数据治理与OneData 体系

KAMI

大数据 数据中台 数据治理 OneData

业余前端的日常

顿晓

学习 大前端 日常 专家 知识体系

从一次排查ES线上问题得出的总结——熔断机制

罗琦

elasticsearch 源码分析 circuit break 熔断

《后浪》产品经理篇(恶搞版)

静陌

产品经理 后浪

浅谈Cloud Native技术对云上产品的影响

韩超

Docker Kubernetes 云原生 IaaS PaaS

计算机中的递归对普通人有什么启示?

BitSea

算法

松哥手把手带你入门 Spring Security,别再问密码怎么解密了

江南一点雨

Java spring Spring Boot spring security

尽管HTTP/3已经来了,HTTP/2也得了解啊

清远

网络协议 HTTP

对于程序员,那些既陌生又熟悉的计算机硬件

架构师修行之路

微软 编程 程序员 cpu 架构师

程序员的晚餐 | 5 月 17 日 当西红柿遇上鱼

清远

美食

Xtrabackup的安装使用

一个有志气的DB

MySQL 工具 数据的分片和备份

让你高效工作与学习的免费工具(1)

石云升

高效工作 效率工具 工具

如果你觉得学习 Git 很枯燥,那是因为你还没玩过这款游戏!

GitHubDaily

git GitHub 编程 程序员 开发者工具

严选合伙人(二)

Neco.W

创业 重新理解创业 合伙人

设计模式之观察者模式

设计模式

OneData之OneID

KAMI

大数据 数据中台 数据治理 OneData

游戏夜读 | Scikit-learn迎来0.21之前

game1night

Harbor 2.0的飞跃: OCI 兼容的工件仓库

亨利笔记

Kubernetes 容器 k8s Harbor 镜像

微服务涉及的技术生态有哪些?

周果

分布式 微服务 方法论 软件架构

「云智公开课」百度沧海·存储

「云智公开课」百度沧海·存储

Xtend 2.4.3 扩展活动注解支持文件系统_Java_Ralph Winzinger_InfoQ精选文章