【问题标题】:How to get a Class object from a generic type? [duplicate]如何从泛型类型中获取 Class 对象? [复制]
【发布时间】:2012-04-18 00:16:19
【问题描述】:

可能重复:
Get class of generic

我正在尝试这样做:

public static<T extends Object> T perform(){
    Class<T> classObject = T.class;
    Class<T> classObjectAgain = T.getClass();
    //...
}

我认为“扩展对象”可以让我访问 .class 和 getClass()... 但是这不会编译:“Illegal class litteral”

你知道我怎么能做这样的操作吗?

【问题讨论】:

  • 这个答案有很多重复,只要多搜索stackoverflow。比如“从泛型类型中获取类”。

标签: java class generics


【解决方案1】:

Java 泛型是通过类型擦除实现的(因为它们只出现在 Java 5 中,所以选择这种类型的实现是为了支持遗留代码)。

这意味着在运行时,所有泛型类型实际上都是 Object 类型。所以你不能在运行时使用反射来获取参数化对象的信息。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-08-29
    • 1970-01-01
    • 2021-09-26
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多