当前位置: 首页 > 知识库问答 >
问题:

为什么Java泛型不支持基元类型?[副本]

隆璞
2023-03-14

下面是错误指定的错误示例。我应该如何修复它,为什么我得到一个错误?

Vector vi=新Vector ();

共有1个答案

支淮晨
2023-03-14

Java泛型不支持像int这样的基元类型。您可以改用java.lang.integer包装类:

Vector <Integer> vi = new Vector<Integer>();

作为附带说明,虽然vector并不是正式弃用的,但它自JDK1.2以来就被认为是过时的,您可能应该改用arraylist

 类似资料:
  • 问题内容: 为什么Java中的泛型只能用于类,而不能用于原始类型? 例如,这可以正常工作: 但这是不允许的: 问题答案: ava中的泛型是一个完全编译时的结构-编译器将所有泛型使用转换为正确的类型。这是为了保持与以前的JVM运行时的向后兼容性。 这个: 变成(大致): 因此,任何用作泛型的东西都必须可转换为Object(在此示例中返回),而原始类型则不是。因此它们不能用于泛型。

  • 为什么Java中的泛型可以处理类而不能处理基元类型? 例如,这个操作很好: 但这是不允许的:

  • 问题内容: 我正在使用泛型编写某些东西,令我惊讶的是,我发现这行不通: 那我不能实例化泛型吗?没有任何方法可以做到这一点吗? 问题答案: 是的,这真是令人讨厌。 我使用的解决方法是强制客户端在构造新类时传递类-即 然后您可以使用。

  • 问题内容: 在Java中,Map接口定义为 为什么不? 我刚遇到一个讨厌的错误,因为使用了错误的类型密钥。我认为泛型的目的是在编译期间及早捕获类型错误。这会达到目的吗? 问题答案: 凯文·布罗里恩(Kevin Bourrillion)不久前就在博客上发表了文章。摘要: 一致地,除非有必要防止集合损坏,否则Java Collections Framework(以及Google Collections

  • 所以我有这个代码: 它应该打开一个文本为"true"的消息对话框。问题是它会给出一个编译器错误,说我不能调用基元类型int的方法。为什么会发生这种情况? 铸造按预期工作。我只是不明白为什么对象会变成一个基本类型。

  • 我正在尝试我的第一个Quarkus应用程序,并且正在从Spring转移到Quarkus。 在Spring中,我创建了一个helper库,其中定义了一个通用的StandardService。 服务类如下所示: model类如下所示: 是我的代码中遗漏了什么,还是Quarkus的限制?在Spring中,我可以在服务内部编译和使用它。