小编典典

Java:通用的instanceof

java

有没有办法找到泛型的类类型?

if (T instanceof String) {
    // do something...
}

以上内容绝对无法编译。


阅读 214

收藏
2020-10-18

共1个答案

小编典典

泛型是编译时功能。泛型在编译时添加检查,这在运行时可能没有任何意义。这是一个例子。您只能检查所引用对象的类型,它可能是代码中的超级类型。如果要传递类型T,则必须明确地执行此操作。

void someMethod(Class<T> tClass) {
    if(String.class.isAssignableFrom(tClass))

要么

void someMethod(Class<T> tClass, T tArg) {

注意:类型可能不相同,

someMethod(Number.class, 1);
2020-10-18