接下来我们来实现膳绫擎章一?抽象类,解释一下下面的代码,鄙人面的代铝闼楝我们声清楚明了两个集合类,allTypes和types,个中allTypes中包含了我们呢膳绫擎所声明的所有类,然则我们具体的类型实际上只有两种即Mutt和EgypianMau,所以我们真正须要new出来的宠物只是types中所包含的类型,今后我们经由过程调用getTypes()便可以获得types中所包含的所有类型。
- public class LiteralPetCreator extends PetCreator {
- @SuppressWarnings("unchecked")
- public static final List<Class<? extends Pet>> allTypes = Collections.unmodifiableList(
- Arrays.asList(Pet.class, Dog.class, Cat.class, Mutt.class, EgyptianMau.class));
- private static final List<Class<? extends Pet>> types = allTypes.subList(
- allTypes.indexOf(Mutt.class), allTypes.size());
- public List<Class<? extends Pet>> getTypes() {
- return types;
- }
- }
总体的逻辑已经完成了,最后我们实现用来统计集合中相干Pet类个数的TypeCounter类。解释一下isAssignalbeFrom()办法,它可以断定一个反射类是某个反射类的子类或者借居子类。而getSuperclass()顾名思义就是获得某个反射类的父类了。
推荐阅读
常见用法: netstat –npl 可以查看你要打开的端口是否已经打开。 netstat –rn 打印路由表信息。 netstat –in 供给体系上的接口信息,打印每个接口的MTU,输入分>>>详细阅读
本文标题:Java反射机制应用实践
地址:http://www.17bianji.com/lsqh/35285.html
1/2 1