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

如何获取泛型定义实体的.class?

杨和蔼
2023-03-14
问题内容

那么,如何在Java中执行以下操作?

List<String> strings = new ArrayList<String>();       
JAXBElement<List<String>> jax = new JAXBElement<List<String>>(new QName("strings"), List<String>.class, strings);

该问题专门发生在List.class上,返回的错误是:

Multiple markers at this line
- List cannot be resolved to a variable
- String cannot be resolved to a variable
- Syntax error on token ">", void expected after this token

问题答案:

你不能

使用最接近您想要的近似值(Class<List<String>>) List.class

这是因为没有List<String>.class,因为在运行时,List<String>List<Banana>List<FruitSalad>,并且List都在Java中的相同。出于种种原因故意进行此操作,这称为类型擦除。



 类似资料:
  • 如何获取这个类的类型?对于上下文,我使用ModelMapper,我需要类类型T从S转换为T。 背景: 我已经尝试了N种方法,其中我放置了“//一些方法来获取类型”,但没有任何效果。例如: 或

  • 问题内容: 如何获得泛型的“真实”类? 例如: 如果T =整数 输出: 如果T =字符串 输出: 谢谢 问题答案: 如果您的类中有一个实例类型T的实例变量,并且碰巧已设置好该变量,则可以打印该变量的类。

  • 问题内容: 我有一个通用的数据库访问类,我使用TypeLiteral构造进行绑定。现在在测试中,我想模拟该类,为此我创建了一个提供程序,该提供程序创建了一个模拟实例。在我的测试中,我想访问该模拟以定义其行为。现在的问题是,我该如何从喷油器取回物体? 那是我的绑定定义: 通常我会得到一个这样的实例: 但是由于我没有将GenericDbClass的实现绑定到Interface本身,所以我不知道该怎么做

  • 问题内容: 这是我的代码:ExecutorImp扩展了AbstractExecutor,它提取了与实现者相同的执行逻辑(ExecutorImp是一种情况),当调用ExecutorImp的execute()方法时,它将在其父类型中调用该方法,但在父类型中调用该方法(AbstractExcutor )应该知道与实现者绑定的另一个类(在示例中,它是User类): 所以,我的代码有什么问题? 问题答案:

  • 我对这些字段有以下要求: 付款(类型付款)- 令牌(字符串) 类型(字符串) cvv(字符串) 我试图通过访问字段令牌,但我真的不知道如何使其工作。我发现了一些与反射相关的东西,但我真的不知道它是如何工作的。 我已经尝试了类似的东西,但我仍然不知道如何获取这个字符串“令牌”:

  • 问题内容: 我有一个泛型类。在一种方法中,我想获取的类实例,但我无法调用。 使用它解决问题的首选方法是什么? 问题答案: 简短的答案是,无法找到Java中泛型类型参数的运行时类型。我建议阅读Java教程中有关类型擦除的章节以获取更多详细信息。 一个流行的解决方案是Class将type参数的传递给泛型类型的构造函数,例如