- public class TypeCounter extends HashMap<Class<?>, Integer> {
- private Class<?> baseType;
- public TypeCounter(Class<?> baseType) {
- this.baseType = baseType;
- }
- public void count(Object obj) {
- Class<?> type = obj.getClass();
- if (!baseType.isAssignableFrom(type)) {
- throw new RuntimeException(
- obj + " incorrect type " + type + ", should be type or subtype of " + baseType);
- }
- countClass(type);
- }
- private void countClass(Class<?> type) {
- Integer quantity = get(type);
- put(type, quantity == null ? 1 : quantity + 1);
- Class<?> superClass = type.getSuperclass();
- if (superClass != null && baseType.isAssignableFrom(superClass)) {
- countClass(superClass);
- }
- }
- @Override
- public String toString() {
- StringBuilder result = new StringBuilder("{");
- for (Map.Entry<Class<?>, Integer> pair : entrySet()) {
- result.append(pair.getKey().getSimpleName());
- result.append("=");
- result.append(pair.getValue());
- result.append(", ");
- }
- result.delete(result.length() - 2, result.length());
- result.append(
推荐阅读
常见用法: netstat –npl 可以查看你要打开的端口是否已经打开。 netstat –rn 打印路由表信息。 netstat –in 供给体系上的接口信息,打印每个接口的MTU,输入分>>>详细阅读
本文标题:Java反射机制应用实践
地址:http://www.17bianji.com/lsqh/35285.html
1/2 1
Java反射机制应用实践
作者: 来源: 2017-05-18 08:56:25 阅读次 我要评论
关键词: 探索发现
乐购科技部分新闻及文章转载自互联网,供读者交流和学习,若有涉及作者版权等问题请及时与我们联系,以便更正、删除或按规定办理。感谢所有提供资讯的网站,欢迎各类媒体与乐购科技进行文章共享合作。
网友点评
精彩导读
品牌展示

科技快报