Java 编程思想--注解

刚刚经过一段时间的实习(学院组织安排),感触很多,见识了世界500强企业,真的是很刁,所以回来就静下心来好好学习。

1.基础知识

这里写图片描述

这里写图片描述

2.代码篇
(1)定义注解,其实很简单,如果没有注解处理器的话,注解就像注释,没有太多用处。大部分时间我们使用注解是使用第三方框架或者自定义注解,那么自定义注解的话就必须自己书写注解处理器。
功能:用于跟踪一个项目中的用例

@Target(ElementType.METHOD)
@Retention(RetentionPolicy.RUNTIME)
public @interface UserCase {

    int id();

    String description() default "no description";

}

(2)注解处理器
编写注解处理器肯定就得用到java反射机制,获取使用注解的类,获取属性,获取方法等等。

public class UserCaseTracker {

    public static void trackUserCases(List<Integer> userCases, Class<?> cl) {
        for (Method m : cl.getDeclaredMethods()) {
            UserCase uc = m.getAnnotation(UserCase.class);
            if (uc != null) {
                System.out.println("Find use case " + uc.id() + " ," + uc.description());
                userCases.remove(new Integer(uc.id()));
            }
        }
        for (int i : userCases) {
            System.out.println("Warning:Missing use case-" + i);
        }
    }

    public static void main(String[] args) {
        List<Integer> userCases = new ArrayList<Integer>();
        Collections.addAll(userCases, 47, 48, 49, 50);
        trackUserCases(userCases, PasswordUtils.class);
    }

}

(3)使用注解

public class PasswordUtils {

    @UserCase(id = 47, description = "密码至少包含一个数字")
    public boolean validatePassword(String password) {
        return password.matches("\\w*\\d\\w*");
    }

    @UserCase(id = 48)
    public String encryptPassword(String password) {
        return new StringBuilder(password).reverse().toString();
    }

    @UserCase(id = 49, description = "新密码不能使用以前用过的任何一个密码")
    public boolean checkForNewPassword(List<String> prePassword, String password) {
        return !prePassword.contains(password);
    }
}

3.总结
使用注解,我们需要知道:
(1)通过注解我们可以将元数据保存到java源代码中,并利用 annotation API 来构建处理工具,完成我们需要的逻辑。
(2)java 的默认注解
@Override,@Deprecated,@SuppressWarnings
(3)元注解(4种)
@Target,@Retention,@Documented,@Inherited.
(4)注解不支持继承
可以在一个注解只呢个嵌套其他注解。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值