请问老师,视频中说抽象类和接口才能获取泛型的真实类型吗

来源:4-2 网络库的封装,泛型参数边界2

慕九州6385248

2020-02-24

下面这段代码打印的是 String,为什么也能获取到泛型的真正类型?

class SupperClass<T>{}

class SubClass1 extends SupperClass<String> {
    public List<Integer> getValue(){
        return null;
    }
}

public class demo {
    public static void main(String[] args) {
        ParameterizedType superType = (ParameterizedType) SubClass1.class.getGenericSuperclass();
        for (Type type : superType.getActualTypeArguments()) {
            System.out.println(type);
        }
    }

}
写回答

1回答

LovelyChubby

2020-02-25

对于class 类,class  user  extends  people<JsonObject>如果是这种显性标记的泛型类型运行时是可以获取到的。固定标记在类上的。

视频课中演示的是new  User<JsonObject>

这种情况下是获取不到的。new 出来的User类并没有明确显性标记的泛型类型。是动态标记的。

0
1
慕九州6385248
非常感谢!
2020-02-25
共1条回复

开发商业级热门短视频App 掌握Jetpack组件库

Jetpack架构大揭秘,全组件实战主流且功能完整的短视频App

1364 学习 · 607 问题

查看课程