类注解简介及其代码样例

一、类注解简介

  1. 定义

    • 类注解是一种应用于 Java 类的特殊标注。它可以为类添加额外的元数据信息,以便在编译时、运行时或者通过特定的框架进行处理。
  2. 作用

    • 配置信息提供:许多框架使用类注解来指定类在框架中的角色和行为。例如,在 Spring 框架中,@Service@Controller等注解用于标识不同类型的业务逻辑组件和控制器类。
    • 代码文档化:类注解可以提供关于类的用途、作者、版本等信息,增强代码的可读性和可维护性。
    • 编译时检查:某些注解可以触发编译器进行特定的检查,确保类满足一定的条件。
  3. 生命周期

    • 类注解可以在编译时、加载类时或运行时被处理。不同的注解保留策略(RetentionPolicy)决定了注解在哪个阶段可见。例如,RetentionPolicy.RUNTIME表示注解在运行时仍然可用,可以通过反射机制获取。

二、代码样例

  1. 自定义类注解
    • 定义一个类注解:
import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;

@Target(ElementType.TYPE) // 表示这个注解可以用在类上
@Retention(RetentionPolicy.RUNTIME) // 在运行时可见
@interface MyClassAnnotation {
    String description() default "No description";
}
  1. 使用自定义类注解
    • 在一个类上应用这个注解:
@MyClassAnnotation(description = "This is a sample class")
class SampleClass {
    public void sampleMethod() {
        System.out.println("This is a method in the annotated class");
    }
}
  1. 运行时读取类注解
    • 通过反射机制在运行时读取类注解:
public class Main {
    public static void main(String[] args) {
        try {
            Class<?> clazz = Class.forName("SampleClass");
            if (clazz.isAnnotationPresent(MyClassAnnotation.class)) {
                MyClassAnnotation annotation = clazz.getAnnotation(MyClassAnnotation.class);
                System.out.println("Class description: " + annotation.description());
            }
        } catch (ClassNotFoundException e) {
            e.printStackTrace();
        }
    }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值