gpt4 book ai didi

java - Java中类型删除的异常(exception)是什么?

转载 作者:行者123 更新时间:2023-12-04 23:42:50 25 4
gpt4 key购买 nike

我在网上的某些地方看到它提到,在某些情况下,可以使用反射 API 来获取有关泛型数据类型的信息,我认为这些信息会因类型删除而丢失。

我正在寻找类型删除不完整的情况的完整列表,即仍然可以通过反射访问某些内容。可以获取泛型类型的示例和相关反射代码的良好列表将非常好。

更新 http://tutorials.jenkov.com/java-reflection/generics.html正是我正在寻找的例子。

最佳答案

我认为归根结底是这样的:

  • 没有对象实例存储任何类型信息。

  • 然而,这些类保留了它们所有的泛型签名(否则在编译时无法进行任何泛型类型检查)

因此,使用反射,您可以读取给定类的泛型类型信息。

例子:

 class MyList extends ArrayList<MyObject>{}

List<MyObject> x = new MyList();

Reflection 会告诉你这是一个 MyObject 的 List(因为这个信息被编译到了 MyList 类中)。

但是

List<MyObject> x = new ArrayList<MyObject>();

反射不会告诉你任何有用的信息(因为 ArrayList 对 MyObject 一无所知)。

关于java - Java中类型删除的异常(exception)是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11822904/

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