zoukankan      html  css  js  c++  java
  • java中取泛型对象

    1.方案1:没有继承关系的

    public class A<T> {    
    Class<T> clazz;
    public A(T... ts){
    this. clazz = getTClass(ts);
    }
    static <T> Class<T> getTClass(@SuppressWarnings("unchecked") T... index) {
            String name = "[Ljava.lang.Object;";
            if (index != null)// 如果index参数不为空
                name = index.getClass().getName();// 根据index找到对应类型(数组)的名称
            StringBuffer sbf = new StringBuffer();
            for (int i = 2; i < name.length() - 1; i++)// 循坏重新放置到sbf里面
                sbf.append(name.charAt(i));
            name = sbf.toString();// 更新name变量
            try {
                return (Class<T>)Class.forName(name);// 若不出错,class存在即返回Class<?>
            } catch (ClassNotFoundException e) {
                System.err.println(e.getMessage());// 若出错,class不存在即返回null
            }
            return null;
        }
    }

      

    2.方案2:存在继承关系

     public class DbAccess<T> implements IDbAccess<T> {

    private Class<T> getTClass() {
    Class<T> tClass = (Class<T>) ((ParameterizedType) getClass().getGenericSuperclass())
    .getActualTypeArguments()[0];
    return tClass;
    }
    }
  • 相关阅读:
    mac 快捷键
    mac 配置nginx 虚拟域名(转载)
    StringUtils中 isNotEmpty 和isNotBlank的区别【java字符串判空】
    软件常用版本英文snapshot和ga
    IF条件控制
    函数与方法
    数据类型
    函数 FUNCTION
    集合 SET
    字典 DICTIONARY
  • 原文地址:https://www.cnblogs.com/liucuiqiang/p/11595685.html
Copyright © 2011-2022 走看看