当前位置 博文首页 > 用心编码:Java 编程思想--注解

    用心编码:Java 编程思想--注解

    作者:[db:作者] 时间:2021-09-07 13:32

    刚刚经过一段时间的实习(学院组织安排),感触很多,见识了世界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)注解不支持继承
    可以在一个注解只呢个嵌套其他注解。

    cs
    下一篇:没有了