在一堆 XML 配置文件之后,我看到 Java 转向基于注释的配置。
注释在这里扮演着 DSL 的角色吗?
是不是因为Java的静态特性?我在 Ruby 中思考,它没有 (afaik) 那样的东西。是因为Ruby有很好的元编程能力吗?
是否有其他选择(我的意思是除了使用一堆 .xml 文件之外)
最佳答案
基本上,注释 是一种工具,允许您在编译时处理源文件,并执行与文件中找到的注释相对应的操作(可能派生新源)。
它们在很多方面都非常有用,例如明确约束同时避免代码困惑或丰富某些方法的行为。
我不会说它们与 Ruby 的 DSL 如此相似,因为在这种情况下,您可以使用特定语法注释代码,而在 Ruby 中,您可以从头开始设计自己的 DSL 并按需要使用它。
Java 提供了一个名为 apt
的工具(就像您怀疑的那样),它也可以在运行时处理注释,但它们通常用于提供编译-时间信息到您的来源。这并不意味着在某些情况下您不能轻松地调整注释机制来解决您将通过 DSL 获得的相同内容,但它们的存在目的不同。
关于java - 注释是 Java 中的某种 DSL 吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3239249/