当前位置: 首页 > 面试题库 >

如何获取列表包含的元素类?

狄玉书
2023-03-14
问题内容

我有一个这样的清单:

private List<T> myList = new ArrayList<T>();

我想获取T的.class。我该怎么做?

我的意思是:

myList.getClass()

编辑: 我尝试过:

 Field genericField = Wrapper.class.getDeclaredField("myList");
 ParameterizedType genericType = (ParameterizedType) genericField.getGenericType();
 Class<?> genericClass = (Class<?>) genericType.getActualTypeArguments()[0];

当我调试它时

genericType

值:

java.util.List

所以我认为这肯定是与该问题不同的问题:获取java.util.List的泛型类型,因为如果您使用声明了一个类T并在T以后的其他方法中分配了某些内容,则该类T消失了。


问题答案:

您不能因为类型擦除。泛型类型在运行时未知(已被“擦除”),仅在编译时使用。

例如,这是java泛型和c#泛型之间的主要区别。



 类似资料:
  • 在寻找这个问题的答案时,我也遇到过类似的利用LINQ的方法,但是我还不能完全理解它们(并因此实现它们),因为我对它还不熟悉。基本上,我想说的是: 检查列表的任何元素是否包含特定字符串。 如果是,则获取该元素。 老实说,我不知道该如何着手做那件事。我能想出的是这个(当然不工作): 我知道为什么它不起作用: 不返回,因为它将检查列表的整个元素是否与我指定的字符串匹配 不会找到匹配项,因为它将再次检查与

  • 问题内容: 您可以使用鼠标选择网页的一部分。 我知道可以获取当前选择的文本,但是如何获取包含当前选择的开始或结束的DOM元素? 问题答案: 在IE中,使用document.selection.createRange()。parentElement(),在实际的浏览器中,使用window.getSelection()。getRangeAt(0).startContainer.parentNode。像

  • 我要求用户在控制台写四个数字,每个数字用连字符分隔。然后我将它们拆分,这将自动创建一个列表,并将其转换为int。但我不知道用户输入了多少数字。 如何检查if方法中这个列表包含多少元素?我需要这样的东西: 我不需要建议来重建我的代码,我需要知道我是否可以检查它或不。

  • 问题内容: 考虑以下: 如何获取列表中的元素数量? 问题答案: 该函数可以与Python中的几种不同类型一起使用-内置类型和库类型。例如: 官方2.x文档在这里: 官方3.x文档在这里:

  • 问题内容: 我有具有特定名称的元素的NodeList,我想拥有所有theese节点的XPath。 我找不到方法。 我正在寻找类似GET_XPATH()的方法 有人知道该怎么做吗?甚至有可能吗? 如果可能,XSLT也可以使用它,但是如果有人知道Java中的这种可能性,则最好使用它。 原因:我需要一组指向XML库的指针。指向定义元素的指针。 输入示例: 输出: 问题答案: 以下样式表: XSLT 1.

  • 问题内容: 的HTML 码 问题答案: 我已经看到这个问题在过去大约一年左右的时间里弹出了几次,我想尝试编写此函数…所以就到这里了。它接受父元素,并删除每个子元素的textContent,直到剩下的是textNode为止。我已经在您的HTML上对其进行了测试,并且可以正常工作。 你叫它