gpt4 book ai didi

java 类型删除与 Field#getGenericType 和 Method#getGenericReturnType

转载 作者:塔克拉玛干 更新时间:2023-11-03 02:53:58 25 4
gpt4 key购买 nike

据我了解,泛型是 Java 的编译时特性,编译后的字节码中不存在参数化类型信息。我现在发现了 Field#getGenericType 和 Method#getGenericReturnType 方法,从而打破了我的世界观。请帮我拼凑一下。

最佳答案

仅运行时类型的对象被删除。例如:

Object obj = new ArrayList<String>();

obj.getClass()将返回 ArrayList.class .你甚至可以说 ArrayList有一个通用参数。但是没有办法判断是否 obj创建为 ArrayList<String> , ArrayList<Integer> , ArrayList<Object> , ArrayList (原始)或其他任何内容。

类、方法等的静态类型信息仍然存在(尽管局部变量不存在)。这只是作为类文件中的属性附加的一点额外数据,可在运行时使用。可以将其视为具有运行时保留的注解。有问题吗?

关于java 类型删除与 Field#getGenericType 和 Method#getGenericReturnType,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/923624/

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