解决方案 »

  1.   


    不能直接new一个T的,如果只有类被声明<T>,那么取不到T的class。
    这个类的方法被传递了test(T t)这样参数得时候,通过getclass或取
      

  2.   


    示例:
    package com.w1520.JavaDemo;/**
     * 测试.
     * 
     * @author puruidong
     * @version 2013.2.25
     */
    class ABC<T>{

    public ABC (T t){
    System.out.println(t.getClass());//获取类的信息.
    }
    }class D{
    //空类.
    }
    public class JavaDemo {
    public static void main(String[] args) {
     new ABC(new D());

    }
    }
    输出:class com.w1520.JavaDemo.D
      

  3.   

    不继承,貌似不能。class B extends T<X> {
    }这种情况,即使在A里面写代码,也是能够获取X的具体信息的。之所以这种方式可以,那是因为在编译的时候,<X>的信息,已经编译到了B.class里面,成为了B.class的一部分。而你new A<X>()或者new A<Y>()的时候,<X><Y>只存在于运行期,并没有被编译到A.class里面。所以无法反射出来
      

  4.   

    这位仁兄说的对头,之所以只用泛型就是因为在某些地方我们不知道或者不想知道具体的参数类型信息而笼统的把他认为是某个类型T/E之类的,这样能够是方法变得灵活通用等等;比如之前有段时间我写的一些与数据库操作的方法 public <T> T simplquery(String querysql, ResultSetCallBackInf<T> callback,
    String... param) throws SQLException {
    ResultSet rs = null;
    rs = dbUtil.simplquery(querysql, param);
    return callback.RsCallback(rs);
    }在实际开发中我们需要用同一个方法来操作所有的业务bean(增删改查),而bean类不可能就一个所以需要使用泛型来处理,这就是泛型的优点
      

  5.   

    是这样的,我希望这个类是个可变参数,不是对象,然后再方法里面有个方法是要用到这个类的class的,听一个同事说可以用泛型,代码大体如下:
    public void graphTest(这里需要传递一个类){
        类 a = (类)方法(类.class);
    }
    想让这个类是个可变参数,怎么搞?
      

  6.   

    public class NetworkUtil<T>
    {
        public void graphTest(T t){
            
            t.getClass();
        }
    }
    这样不行么
      

  7.   

    这样在实例化Network<T>的时候,T是什么类型,你在graphTest(T t)通过 t.getClass()得到的不就是什么类型。 这样不是你传什么类型的类都可以。不符合你的要求?
      

  8.   

         
            Class<T> entityClass = null;
            Type t = getClass().getGenericSuperclass();
            if(t instanceof ParameterizedType){
                Type[] p = ((ParameterizedType)t).getActualTypeArguments();
                entityClass = (Class<T>)p[0];
            }
         
      

  9.   


    public Class<?> getType(){
    T t = (T) new Object();
    return t.getClass();
    }不知道这样行不行因为T是类型,所有先实例化T然后获取类型