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

如何实现类似于@Override java注释的东西?

宇文温文
2023-03-14

有了这个jdk代码在.../java/lang/Override.java

package java.lang;
import java.lang.annotation.*;
@Target(ElementType.METHOD)
@Retention(RetentionPolicy.SOURCE)

public @interface Override {
}

java编译器只有注释声明,它足够智能,可以检测错误(编译时):

Example类型的toString 123()方法必须重写或实现超类型方法

在下面的问题代码中。

package annotationtype;

public class Example {

    @Override public String toString() {
       return "Override the toString() of the superclass";
    }

    @Override public String toString123() {
       return "Override the toString123() of the superclass";
    }

    public static void main(String[] args) {

    }


}

Override的注释声明刚刚编译为,

interface java.lang.Override extends java.lang.annotation.Annotation{
}

它只不过是一个接口

所以

如何与java接口。lang.Override语法是否帮助java编译器在编译时检测上述错误?

共有2个答案

凤棋
2023-03-14

它只不过是一个接口。

所以

接口java.lang.重写语法如何帮助java编译器在编译时检测上述错误?

没错。Overide只不过是一个接口。实际工作由java编译器完成。未指定编译器如何执行此操作。

这里有一些链接,解释了如何使用Annotation处理器来实现类似于@Overide的东西:

  1. 处理器Java文档
  2. Java注释处理工具
  3. 使用注释处理器生成代码
  4. 批注处理器,生成编译器错误
  5. 使用Java 6 API进行源代码分析
  6. 玩Java注释处理
卫才
2023-03-14

触发编译错误的实现不在于注释,而在于Java编译器。

如果要编写自己的类似注释处理器,请使用注释处理器API:http://docs.oracle.com/javase/7/docs/api/javax/annotation/processing/Processor.html

 类似资料:
  • 问题内容: 我想添加一个类似于@RequestParam的注释,尽管它从请求属性而不是请求参数中提取值… 是否有一个示例或说明,以及如何为此创建自己的注释以及所需的处理程序/活页夹? 谢谢 问题答案: 标题为“扩展Spring MVC的注释控制器”的博客条目回答了您的问题。用Google搜索它,因为Stackoverflow不允许我创建直接链接。 基本上,您创建一个@RequestAttribut

  • 问题内容: 我试图从中得到: 那: 我之前已经为每个元素创建了类,但是当然什么也没有发生。如何创建元素类,以便可以代替WebElement使用它? 这里是此时的InputBox代码: 问题答案: 创建一个新的FieldDecorator实现。 当您使用PageFactory时,您可能正在调用 这将成为 您的FieldDecorator的行为与DefaultFieldDecorator相似,只是将代

  • 有没有可能在科特林做类似跟随的事情?

  • 我们试图将AspectJ实现到现有软件中,以便在进行服务调用后执行一些代码。 注: null 删除了批注,该批注可以正确地自动连接所有内容,但我们的@Aspect从未被调用。 通过声明在批注中添加了CGLIB支持,但无效。 我们尝试直接从Spring中遵循以下文档:@EnableAspectJAutoproxy Javadoc 这似乎是AspectJ处理自动连线依赖关系的代理机制的一个问题。 为什

  • 如何从注释中提取操作和对象参数? 如何解析对象定义中的SpEL表达式并将对象作为'act'参数传递?

  • 问题内容: 我被迫将JUnit3用于特定的测试套件。我的理解和服务的功能和,但有一个模拟和对事情应该发生一次测试开始之前,一旦所有的测试运行后? 问题答案: 好的,我应该搜索得更好。 Junit 3中的班级拆解?