当前位置: 首页 > 知识库问答 >
问题:

如何理解java中的注释以及如何用java实现我的注释?

王昊
2023-03-14

我所知道的是:

  • 注释是在java 5中添加的
  • 注释可以在方法、类和属性中使用
  • 注释可以在运行时、类、源代码中使用(我不知道如何使用类和源代码,以及它们的特性)
  • 当java程序运行时,可以实现带有保留的注释,即运行时注释

我想实现一个注释,具有以下特性:

>

@MyAnnotation(allowMethods={xxx.doSomething})
public void getValue(){}

getValue方法只可以在实例Self和xxx.do某物()方法中访问

接下来我该做什么,学什么?

我在哪里可以了解这些?

共有1个答案

白成济
2023-03-14

我想你可能误解了什么。注释是描述性元素,而不是程序的一部分。您可以编写任意多的注释,使用您的代码的人仍然可以忽略它们。

也就是说,强制执行策略的注释(就像您的注释一样)实际上可以在编译或运行时实现,但是您需要一个外部机制来帮助您。我能想到3:

  1. 注释处理允许您与编译器交互,并通过生成代码或忽略编译器错误来处理注释。不幸的是,我认为它不适用于您的情况,因为您希望保护带注释的类型不被实例化,这意味着调用站点实际上没有注释。注释处理只允许访问具有注释的实际代码段,而不允许访问引用注释的代码段
  2. AspectJ允许您基于静态切入点编写策略实施方面并忽略编译器错误。这里的问题是,静态切入点的语义非常有限,因此,虽然可以完全禁止类的实例化,或者从某些包中禁止实例化,但不能将类的实例化限制为1
  3. 第三种方法,也可能是唯一明智的方法,就是使用Spring或Guice这样的容器,并将类配置为singleton。只要只从容器中检索类,它就永远不会创建第二个实例

最后:如果想限制类的实例化数量,可以使用经典的单例模式方法。

 类似资料:
  • 本文向大家介绍java 注解annotation的使用以及反射如何获取注解,包括了java 注解annotation的使用以及反射如何获取注解的使用技巧和注意事项,需要的朋友参考一下  一、注解基本知识 1、元注解 元注解是指注解的注解。包括  @Retention @Target @Document @Inherited四种。 1. Annotation型定义为@interface, 所有的An

  • 在我的项目中,我使用预定义的注释: 的源代码: 我想编写自定义注释,它将与使用(Secure.class)的

  • 有了这个jdk代码在, java编译器只有注释声明,它足够智能,可以检测错误(编译时): 在下面的问题代码中。 的注释声明刚刚编译为, 它只不过是一个。 所以 语法是否帮助java编译器在编译时检测上述错误?

  • 问题内容: 我可能只是看错了方向,但我发现有关批注处理的JSE文档非常稀疏。我想编写一个注释处理器,该处理器处理带注释的String字段和局部变量,以计算的String表达式替换它们。这应该不会太复杂,但是我对于Javax.annotation.processing的Javadoc却迷失了。 编辑:我需要在编译时处理批注,因为我想修改生成的代码。它应将带注释的常量String表达式替换为计算的St

  • 问题内容: 我没有用Java 获得注释。如果它自动为您继承方法,那么如果我需要以自己的方式实现该方法,那又如何呢? 怎么知道我的实现方式? 另外,据说如果我不想使用它,而是以一种老式的Java方式执行它,则必须实现类的,和方法以及类的注释类型方法。 这是为什么? 即使我不知道注释和以前运行良好的程序,我也从未实现过。 请有人从头开始向我解释一下。 问题答案: 只是没有误会:您确实要询问java.l

  • 我没有得到Java中继承的