gpt4 book ai didi

java - 如何从具有泛型的类访问 .class?

转载 作者:塔克拉玛干 更新时间:2023-11-03 03:40:16 24 4
gpt4 key购买 nike

对于没有泛型的类,我可以像这样访问这个 .class 属性:

class Foo{
Class<Foo> getMyClass(){
return Foo.class;
}
}

但是如果 Foo 有泛型,我该如何访问这个“.class”属性呢?像这样:

class Foo<T>{
Class<Foo<T>> getMyClass(){
return (Foo<T>).class //this doesnt work...
}
}

我已经尝试返回 Foo.class ,但这行不通:"cannot cast from Class<Foo> to Class<Foo<T>>" .

我如何访问 Foo<T>的类(class)?

最佳答案

你总是可以这样做:

class Foo<T>{
Class<Foo<T>> getMyClass(){
return (Class<Foo<T>>)(Class<?>)Foo.class
}
}

您将收到未经检查的转换警告,因为它确实不安全——正如其他人所提到的,返回的类对象不再是“Foo<T> 的类”,而是“Foo<SomethingElse> 的类”。

关于java - 如何从具有泛型的类访问 .class?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17634631/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com