java 反射提取类信息, 动态代理 和过滤某些方法演示

欢迎进入Java社区论坛,与200万技术人员互动交流 >>进入

  System.out.println(”boring2″);

  }

  public void boring3()

  {

  System.out.println(”boring3″);

  }

  }

  //

  public class SelectingMethods {

  public static void main(String[] args)

  {

  //代理测试

  SomeMethod proxy =(SomeMethod)Proxy.newProxyInstance(

  SomeMethod.class.getClassLoader(), // 定义代理类的类加载器

  new Class[]{SomeMethod.class},// 代理类要实现的接口列表

  new MethodSelector(new Implementation())//指派方法调用的调用处理程序

  );

  proxy.boring1();

  proxy.boring2();

  proxy.interesting(”bonobo”);

  proxy.boring3();

  }

  }

  对比测试

  package org.rui.classts;

  import org.rui.classts.chilnd.*;

  public class PetCount4 {

  public static void main(String[] args) {

  Pet p=new Dog();

  Class c=Pet.class;

  Class c1=Dog.class;

  Class c2=Cat.class;

  //对象对比 类

  if(p instanceof Dog){

  System.out.println(”true”);

  }else System.out.println(”fales”);

  //class 对比 对象

  if(c.isInstance(p)){

  System.out.println(”true”);

  }else System.out.println(”fales”);

  // class对比class

  if(c.isAssignableFrom(c1)){

  System.out.println(”true”);

  }else System.out.println(”fales”);

  if(c2.isAssignableFrom(c1)){

  System.out.println(”true”);

  }else System.out.println(”fales”);

  System.out.println(”c==c1:”+(c==c1));

  System.out.println(”c.equals(c1:”+(c.equals(c1)));

  System.out.println(”c==Pet.class:”+(c==Pet.class));

  System.out.println(”c.equals(Pet.class:”+(c.equals(Pet.class)));

  }

  }

[1][2][3]

思想如钻子,必须集中在一点钻下去才有力量

java 反射提取类信息, 动态代理 和过滤某些方法演示

相关文章:

你感兴趣的文章:

标签云: