gpt4 book ai didi

Java:是否可以将 Class 对象与泛型类型参数进行比较?

转载 作者:行者123 更新时间:2023-11-29 10:01:15 26 4
gpt4 key购买 nike

假设我有一个类列表:

List<Class<?>> classes;

如果我现在选择其中一个类,比方说...第二个,并且想知道它是否代表 String 类,我将执行以下操作:

classes.get(1).equals(String.class)

但是我怎么知道它是否代表一个通用类型...比如 T?

class Foo<T> {

void someMethod(){

System.out.println(classes.get(1).equals(T)); //error: T cannot be resolved to a variable
}
}

我试过了

T.class
(Class<T>)T

但没有任何作用。我真的很想知道这是否可行,如果可行,如何实现。
感谢您的关注! =)

最佳答案

这在 Java 中是不可能的,因为类型删除 ( http://en.wikipedia.org/wiki/Type_erasure ) - T在运行时实际上并不存在,它仅作为编译器的信息存在。解决这个问题的标准方法是传入 Class<T>。来自哪里T被具体化并使用该类对象。

关于Java:是否可以将 Class<?> 对象与泛型类型参数进行比较?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26883914/

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