MST

星途 面试题库

面试题:Java中自定义注解处理器基础

请简述如何在Java中自定义一个注解,并为该注解创建一个简单的注解处理器,用于打印出使用该注解的类名。
24.6万 热度难度
编程语言Java

知识考点

AI 面试

面试题答案

一键面试
  1. 自定义注解

    • 在Java中,使用@interface关键字来定义注解。以下是一个简单的自定义注解示例:
    import java.lang.annotation.ElementType;
    import java.lang.annotation.Retention;
    import java.lang.annotation.RetentionPolicy;
    import java.lang.annotation.Target;
    
    @Retention(RetentionPolicy.RUNTIME)
    @Target(ElementType.TYPE)
    public @interface MyAnnotation {
    }
    
    • @Retention(RetentionPolicy.RUNTIME)表示该注解在运行时可用。
    • @Target(ElementType.TYPE)表示该注解可以应用在类上。
  2. 创建注解处理器

    • 编写一个类作为注解处理器,通过反射获取使用了注解的类名并打印。
    import java.lang.reflect.AnnotatedElement;
    
    public class MyAnnotationProcessor {
        public static void process(AnnotatedElement element) {
            if (element.isAnnotationPresent(MyAnnotation.class)) {
                System.out.println("使用了MyAnnotation注解的类名: " + element.getSimpleName());
            }
        }
    }
    
  3. 使用示例

    • 定义一个类并使用自定义注解,然后调用注解处理器。
    @MyAnnotation
    public class TestClass {
        public static void main(String[] args) {
            MyAnnotationProcessor.process(TestClass.class);
        }
    }
    
    • 在上述TestClass类中,使用了@MyAnnotation注解,然后在main方法中调用MyAnnotationProcessor.process(TestClass.class)来处理该类,从而打印出使用注解的类名。