`
zsnlovewl
  • 浏览: 172974 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

java注解简单应用

    博客分类:
  • JAVA
阅读更多
package test;

import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;

@Target(ElementType.METHOD)
@Retention(RetentionPolicy.RUNTIME)
public @interface UseCase {
	public int id();
	public String description() default "no description";
}
--------------------------------------------------------------------------------
package test;

import java.util.List;

public class PasswordUtils {
	@UseCase(id = 47, description = "passwords must contain at least one numeric")
	public boolean validatePassword(String password) {
		return (password.matches("\\w*\\d\\w*"));
	}

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

	@UseCase(id = 49, description = "New passwords can't equal preciously used ones")
	public boolean checkForNewPassword(List<String> prevPasswords,
			String password) {
		return !prevPasswords.contains(password);
	}
}
--------------------------------------------------------------------------------------
package test;

import java.lang.reflect.Method;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;

public class UseCaseTracker {
	public static void trackUseCases(List<Integer> userCases,Class<?> cl){
		for(Method m:cl.getDeclaredMethods()){
			UseCase uc=m.getAnnotation(UseCase.class);
			System.out.println(uc);
			if(uc!=null){
				System.out.println("Found Use CaseL"+uc.id()+" "+uc.description());
				userCases.remove(new Integer(uc.id()));
				
			}
			
		}
		for(int i:userCases){
			System.out.println("Warning:Missing user case-"+i);
		}
	}
	
	public static void main(String[] args){
		List<Integer> useCases=new ArrayList<Integer>();
		Collections.addAll(useCases,47,48,49,50);
		trackUseCases(useCases,PasswordUtils.class);
	}
}

 

分享到:
评论

相关推荐

    Java简单的万年历

    只是用于1900年以后的查询,应用到了循环。适合初学者应用,这个没用注释,不过可以看懂。

    java源码包---java 源码 大量 实例

     Tcp服务端与客户端的JAVA实例源代码,一个简单的Java TCP服务器端程序,别外还有一个客户端的程序,两者互相配合可以开发出超多的网络程序,这是最基础的部分。 递归遍历矩阵 1个目标文件,简单! 多人聊天室 3...

    java注释详解

     内容要简单、明了、含义准确,防止注释的多义性,错误的注释不但无益反而有害。  3、 注释的一致性  在写代码之前或者边写代码边写注释,因为以后很可能没有时间来这样做。另外,如果有机会复查已编写的代码...

    全国计算机二级java题库

    会编写Java简单应用程序。 7. 会编写Java小应用程序(Applet)。 8. 了解Java的应用。 考试内容: 一、 Java语言的特点和实现机制 二、 Java体系结构 1. JDK目录结构。 2. Java的API结构。 3. 开发环境设置。 4. ...

    疯狂Java讲义代码

    《疯狂Java讲义》深入介绍了Java编程的相关方面,全书内容覆盖了Java的基本语法结构、Java的面向对象特征、Java集合框架体系、Java泛型、异常处理、Java GUI编程、JDBC数据库编程、Java注释、Java的IO流体系、Java多...

    JAVA上百实例源码以及开源项目

     Tcp服务端与客户端的JAVA实例源代码,一个简单的Java TCP服务器端程序,别外还有一个客户端的程序,两者互相配合可以开发出超多的网络程序,这是最基础的部分。 递归遍历矩阵 1个目标文件,简单! 多人聊天室 3...

    疯狂java讲义源代码

    本书深入介绍了Java编程的相关方面,全书内容覆盖了Java的基本语法结构、Java的面向对象特征、Java集合框架体系、Java泛型、异常处理、Java GUI编程、JDBC数据库编程、Java注释、Java的IO流体系、Java多线程编程、...

    疯狂Java讲义 第3版 PDF电子书下载 带书签目录 完整版.rar

    本书深入介绍了Java编程的相关方面,全书内容覆盖了Java的基本语法结构、Java的面向对象特征、Java集合框架体系、Java泛型、异常处理、JavaGUI编程、JDBC数据库编程、Java注释、Java的IO流体系、Java多线程编程、...

    spring AOP注解的应用1

    关于AOP注解前置通知、后置通知、返回通知、异常通知的注解注释及应用

    基于NetBeans开发的java应用程序集锦1

    每个rar中包含10个应用程序,这是第一章包含了屏幕捕获工具,文本阅读器,简单名片管理系统,鼠标画线,鼠标操作,计算器,数字时钟,动画效果和颜色的控制的全部源码和注释,是想学java初学者的理想教材~

    java源码包4

     Tcp服务端与客户端的JAVA实例源代码,一个简单的Java TCP服务器端程序,别外还有一个客户端的程序,两者互相配合可以开发出超多的网络程序,这是最基础的部分。 递归遍历矩阵 1个目标文件,简单! 多人聊天室 ...

    Java运行环境 Java SE Runtime Environment 8.0.172.x64官方多语言正式版

    Java SE 8 通过减少样板代码,改进了集合和注释,简单的并行编程模型和更有效地利用现代多核处理器,提高了开发人员的工作效率和显着的增强了应用程序的性能。 Java SE 8u172 版本更新:2018年4月17日

    java源码包3

     Tcp服务端与客户端的JAVA实例源代码,一个简单的Java TCP服务器端程序,别外还有一个客户端的程序,两者互相配合可以开发出超多的网络程序,这是最基础的部分。 递归遍历矩阵 1个目标文件,简单! 多人聊天室 ...

    基于Kotlin和Java的安卓计算器应用设计源码

    本项目是基于Kotlin和Java开发的安卓计算器应用设计源码,共包含26个文件。其中PNG图片文件10个,XML配置文件9个,Kotlin源代码...项目结构清晰,代码注释详尽,适合用于学习和研究Kotlin和Java在安卓开发中的应用。

    Java运行环境 Java SE Runtime Environment 8.0.172.x86官方多语言正式版

    Java SE 8 通过减少样板代码,改进了集合和注释,简单的并行编程模型和更有效地利用现代多核处理器,提高了开发人员的工作效率和显着的增强了应用程序的性能。 Java SE 8u172 版本更新:2018年4月17日

    java源码包2

     Tcp服务端与客户端的JAVA实例源代码,一个简单的Java TCP服务器端程序,别外还有一个客户端的程序,两者互相配合可以开发出超多的网络程序,这是最基础的部分。 递归遍历矩阵 1个目标文件,简单! 多人聊天室 ...

    Java开发技术大全(500个源代码).

    HelloWorldApp.java 第一个用Java开发的应用程序。 firstApplet.java 第一个用Java开发的Applet小程序。 firstApplet.htm 用来装载Applet的网页文件 第2章 示例描述:本章介绍开发Java的基础语法知识。 ...

    疯狂java讲义+源码

    本书深入介绍了Java编程的相关方面,全书内容覆盖了Java的基本语法结构、Java的面向对象特征、Java集合框架体系、Java泛型、异常处理、Java GUI编程、JDBC数据库编程、Java注释、Java的IO流体系、Java多线程编程、...

    java开源包11

    GWT Spring 使得在 Spring 框架下构造 GWT 应用变得很简单,提供一个易于理解的依赖注入和RPC机制。 Java扫雷游戏 JVMine JVMine用Applets开发的扫雷游戏,可在线玩。 public class JVMine extends java.applet....

Global site tag (gtag.js) - Google Analytics