|
|
1
23
我从未在实践中使用过它,但您得到的是,您可以使用类来替换注释。
让我们创建一个人工示例。假设我们有一个文档生成器。上面写着
印刷品:
这样(生成器中只有两行额外的代码):
您不必对代码生成器进行太多更改,因为您可以使用类替换注释。 另一个例子是使用注释或XML作为配置的框架。您可能有一个处理注释的处理器。如果您使用XML作为配置,那么您可以生成实现注释的类的实例,并且您的处理器可以在不做任何更改的情况下对它们进行处理(当然还有其他方法可以达到同样的效果,但这是一种方法) |
|
|
2
4
JAXBIntroductions 这是一个很好的例子:它允许使用XML文件配置JAXB注释。我们想到了两个主要用例:配置没有源代码访问权限的类,或者对一个类进行不同的配置。 一般来说,我认为动态实例化注释以将它们传递给框架通常是一个很好的用例。但是,如果您是这个框架的设计者,我当然会三思而后行。 |
|
|
3
0
我在创建注释时使用它,并希望在省略注释时提供默认值,从而使其使用成为可选的。当您的库引入了一个新的注释并且希望库保持向后兼容时,可能会发生这种情况。
默认实现;
处理;
|
|
|
4
-2
没有有效的用户案例-编译器只是容忍它,因为禁止它会非常混乱,编写编译器的人可能在非常罕见的情况下需要该工具。如果您需要对注释进行分类,请参阅本文以了解如何进行分类: Why is not possible to extend annotations in Java? 一个可怜的灵魂在你后面来维护和调试代码,或者另一个需要编写代码生成工具并假设注释类型是直接的,或者另一个仅仅使用这种注释的人,甚至没有梦想会发生什么以及如何处理它。当他发现黑客攻击并找到消除它的方法时,他将死于疝气或类似的疾病:-)注释被认为是纯粹的声明性语句,由codegen工具单独解释,该工具与注释代码分开运行并将其视为数据。
与人们可以输入代码相比,这仍然是一件小事。 注释不是练习黑客的地方-这是编译器试图传达的。你知道注解“实现”中的代码什么时候运行,怎样运行吗?包括CTOR?什么是可用的,什么是不可用的?什么是安全呼叫?编译器没有-编译器需要相当繁重的静态分析来检查这种黑客行为的实际安全性。因此,它只是发出一个警告,这样当出现问题时,人们就不能责怪compile、VM和其他任何东西。 |
|
|
user29759326 · 如何返回递归函数中的最后一个值? 1 年前 |
|
|
malife89 · 将java中的字符串读取为正确的日期格式 1 年前 |
|
|
Tim · 在java中,有没有更快的方法将字节数组写入文件? 1 年前 |
|
|
rudraraj · java中未声明最终变量 1 年前 |
|
|
Bala Ji · 以下BFS的实施效率如何? 1 年前 |