而我们客户端的代码只须要改成simpleProxy.bind(new Salary(), new ControlAdvie)就行了,而SimpleProxy本身不须要做任何的修改。
- import java.lang.annotation.*
- @Target(ElementType.METHOD)
- @Retention(RetentionPolicy.RUNTIME)
- public @interface UserCase {
- public int id();
- public String description() default "no description";
- }
下面是我们检测暗码的对象类的实现:
- public class PasswordUtils {
- @UserCase(id=47, description="Password must contain at least one numeric")
- 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="New passwords can't equal previously used ones")
- public boolean checkForNewPassword(List<String> prevPasswords, String password) {
- return !prevPasswords.contains(password);
- }
- }
应用反射我们可以写出加倍清楚的测试代码,个中getDeclaredMethods()办法可以获取相干对象本身声明的相干办法,而getAnnotation()则可以获取Method对象的指定注解。
- public class UseCaseTracker {
- public static void trackUseCases(List<Integer> useCases, Class<?> cl) {
- for(Method m : cl.getDeclaredMethods()) {
- UseCase uc = m.getAnnotation(UseCase.class);
- if(uc != null
推荐阅读
常见用法: netstat –npl 可以查看你要打开的端口是否已经打开。 netstat –rn 打印路由表信息。 netstat –in 供给体系上的接口信息,打印每个接口的MTU,输入分>>>详细阅读
本文标题:Java反射机制应用实践
地址:http://www.17bianji.com/lsqh/35285.html
1/2 1