English 中文(简体)
Java外地通用的库存类别
原标题:
  • 时间:2009-05-26 16:06:01
  •  标签:

是否有办法储存在施工过程中穿过的一般参数类型,使之达到参数。 我的目标是:

class generic<T> {
    Class<T> type;
    public generic() {
        super();
        this.type = //Something that gets class from T
    }
}

我目前正在做的是:

class generic<T> {
    Class<T> type;
    public generic(Class<T> type) {
        super();
        this.type = type;
    }
}

似乎毫不掩饰地必须两次确定这一类别,但我不敢肯定如何这样做。 我认为,这样做可能具有反省性,但我尚未对此进行调查。 是否有更直截了当的方法? 如果不是(作为一)信息损失的原因?

最佳回答
问题回答

如果你使用静态制造方法,而不用作构造,那么这种类型就不需要两次具体说明。

final class Generic<T> {
    private final Class<T> type;
    private Generic(Class<T> type) {
        super();
        if (type == null) {
            throw new NullPointerException();
        }
        this.type = type;
    }
    public static <T> Generic<T> newInstance(Class<T> clazz) {
        return new Generic<T>(clazz);
    }
}
...
    someFunction(Generic.newInstance(SomeType.class));

当然,如果你想把结果储存在一个变数中,你很可能要重复哪一种。

这些类型在操作时间没有保存,因此不能算作准值。 java的通用课程严格是一个编纂时的概念(基于后向的可赔性原因)。 http://java.sun.com/docs/books/tutorial/java/generics/erasure.html

该类物体的类型参数之一,正是要围绕这一问题开展工作,因此,你可以认为该类物体是按方案表示的。





相关问题
热门标签