作家
登录

Java反射机制应用实践

作者: 来源: 2017-05-18 08:56:25 阅读 我要评论

  •         } catch (InstantiationException e) { 
  •             throw new RuntimeException(e); 
  •         } catch (IllegalAccessException e) { 
  •             throw new RuntimeException(e); 
  •         } 
  •     } 
  •  
  •     public Pet[] createArray(int size) { 
  •         Pet[] result = new Pet[size]; 
  •  
  •         for (int i = 0; i < size; i++) { 
  •            result[i] = randomPet(); 
  •         } 
  •         return result; 
  •     } 
  •  
  •     public ArrayList<Pet> arrayList(int size) { 
  •         ArrayList<Pet> result = new ArrayList<Pet>(); 
  •         Collections.addAll(result, createArray(size)); 
  •         return result; 
  •     } 
  •  
  • 接下来我们来实现膳绫擎章一?抽象类,解释一下下面的代码,鄙人面的代铝闼楝我们声清楚明了两个集合类,allTypes和types,个中allTypes中包含了我们呢膳绫擎所声明的所有类,然则我们具体的类型实际上只有两种即Mutt和EgypianMau,所以我们真正须要new出来的宠物只是types中所包含的类型,今后我们经由过程调用getTypes()便可以获得types中所包含的所有类型。

    1. public class LiteralPetCreator extends PetCreator { 
    2.     @SuppressWarnings("unchecked"
    3.     public static final List<Class<? extends Pet>> allTypes = Collections.unmodifiableList( 
    4.         Arrays.asList(Pet.class, Dog.class, Cat.class, Mutt.class, EgyptianMau.class)); 
    5.  
    6.     private static final List<Class<? extends Pet>> types = allTypes.subList( 
    7.         allTypes.indexOf(Mutt.class), allTypes.size()); 
    8.  
    9.     public List<Class<? extends Pet>> getTypes() { 
    10.         return types; 
    11.     } 
    12.  

    总体的逻辑已经完成了,最后我们实现用来统计集合中相干Pet类个数的TypeCounter类。解释一下isAssignalbeFrom()办法,它可以断定一个反射类是某个反射类的子类或者借居子类。而getSuperclass()顾名思义就是获得某个反射类的父类了。


      推荐阅读

      Linux性能分析工具汇总合集

    常见用法: netstat &ndash;npl 可以查看你要打开的端口是否已经打开。 netstat &ndash;rn 打印路由表信息。 netstat &ndash;in 供给体系上的接口信息,打印每个接口的MTU,输入分>>>详细阅读


    本文标题:Java反射机制应用实践

    地址:http://www.17bianji.com/lsqh/35285.html

    关键词: 探索发现

    乐购科技部分新闻及文章转载自互联网,供读者交流和学习,若有涉及作者版权等问题请及时与我们联系,以便更正、删除或按规定办理。感谢所有提供资讯的网站,欢迎各类媒体与乐购科技进行文章共享合作。

    网友点评
    自媒体专栏

    评论

    热度

    精彩导读
    栏目ID=71的表不存在(操作类型=0)