日期:2014-05-20  浏览次数:20780 次

关于java的泛型编程!
一般情况
Java code

public class Test
{
Public Class getMyClass()
{
        return Test.class;
}

}


泛型情况
Java code

public class Test<E extends Enum<E>>
{
Public Class getEClass()
{
        return E.class;//这里怎么处理能返回E的class
}

}



------解决方案--------------------
Java code


public class Test<E extends Enum<E>> {
    private Class<? extends Enum<E>> t_ = null;

    public Test(Class<? extends Enum<E>> t) {
        this.t_ = t;
    }

    public Class getEClass() {
        return t_;//这里怎么处理能返回E的class
    }

}

------解决方案--------------------
因为所有类都有相应的Class对象,所以一定可以返回Class对象
------解决方案--------------------
听高手详解!!!
------解决方案--------------------
据说是Java中伪泛型的缺陷,最接近的可能也就是1楼的方法了,必须手动同步传一个Class对象。
最近我也试着解决这个问题甚至想重写整个Java Collection Framework (*^__^*),有些小的“成果”,可惜越往深处,问题越多,暂时搁浅……
------解决方案--------------------
java泛型采用擦除,在内部程序不知道具体类型。。。。thinking in java说