1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43
| package lianxi;
import java.lang.reflect.Method; import java.util.ArrayList; import java.util.Collections; import java.util.List;
* 用例检测的注解处理器 */
public class UseCaseChecker { public static void trackUseCases(List<Integer> useCases, Class<?> cl) { for(Method m : cl.getDeclaredMethods()) { UseCase uc = m.getAnnotation(UseCase.class); if(uc != null) { System.out.println("找到用例:" + uc.id () + " " + uc.description ()); useCases.remove(new Integer(uc.id())); } } for(int i : useCases) { System.out.println ("警告-- 缺失用例:" + i); } } public static void main(String[] args){ List<Integer> useCases = new ArrayList<Integer>(); Collections.addAll(useCases, 47, 48, 49, 50); trackUseCases(useCases, PasswordUtils.class); } } 注意:如果trackUseCases()方法不声明为static的话会: Cannot make a static reference to the non-static method trackUseCases(List<Integer>, Class<?>) from the type UseCaseChecker
输出: 找到用例:49 新密码不能和曾经用过的密码重复 找到用例:48 No desciption 找到用例:47 密码必须包含至少一个数字 警告-- 缺失用例:50
|