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

从原始类型转换为泛型类型

公羊信厚
2023-03-14

在下面来自java.util.HashMap的语法中,泛型类型参数在实例化原始类型数组后用于类型转换,

节点

类似的代码在这里不能用类似的语法编译(如下所示),从而导致错误:Type safety:Unchecked cast from Node[]to Node

public class NestedInterfaceInInterface {

    public static void main(String[] args) {
        Node<K,V>[] newTab = (Node<K,V>[])new Node[10];
        //Node<String,String>[] newTab = (Node<String,String>[])new Node[10];  // this works


    }
}

1)我如何解决这个错误?

2) 如何语法Node


共有2个答案

柯波
2023-03-14

泛型数组不被允许的原因是由于Java的类型擦除。甚至CollectionList

索令
2023-03-14
匿名用户

问题是您不能在Java中创建泛型类型的数组,所以您被迫将< code>Node[]的原始类型数组强制转换为< code >节点

该操作称为类型转换,它用于多种场合。在这种情况下,您正在进行不安全的向下转换,这将产生警告

类型安全:未经检查从Node[]转换到Node

但是您可以抑制它以防万一。请注意,没有办法阻止此警告,您可以考虑使用列表

 类似资料:
  • 问题内容: 我目前正在尝试从书中学习如何使用泛型。在本章中,它说取一条数据T并将其转换为整数。我正在Eclipse中尝试不同的方法,但是似乎都不允许这样做。您如何执行以下任务: 然后在另一个类中: 我已经尝试使用和其他一些东西,但似乎没有什么能使Java满意。本书坚持要保持方法的通用性,以防使用浮点数或双精度数代替字符串或整数。 编辑:对于其他人可能有类似的问题。从对这个问题的所有评论和被接受的答

  • 我读了很多文章,但我不明白这两行之间的区别: 我看到的唯一区别是第一行触发了“未检查的分配”警告。

  • 我在我的一个实用程序类中有一个方法,它接受一个集合和一个类对象,并返回一个Iterable实例,该实例可以遍历作为指定类实例的集合的所有成员。其签名为: 这对于大多数用例都非常有效,但现在我需要将其与泛型类

  • 我正在修改open JDK以添加特性,我已经遇到了两次,但没有好的解决方案。

  • 我想说得具体一点。我有一个名为Result的类和一个名为Result的派生类 这些类在方法中用作返回类型。为此,我创建了这个helper类: 正如您所看到的,上面的代码对于成功有两种返回类型,一种是如果您不想返回任何东西,另一种是如果您想返回一些东西,但是失败的结果永远不会返回什么东西。这是不必要的,只是一个错误消息。这使我想到以下问题:当我想创建一个可以使用返回类型返回Success,而不使用返

  • 我正在尝试有一个通量通用转换器使用通用类型在Java 8。我把我的代码建立在这个答案的基础上。其思想基本上是实现这个特定的转换器->: 类型转换器->转换为我想要的任何类型。因此,我正在使用构造函数创建一个类型为的类,并返回一个方法。我想在调用上创建类似这样的多个条目:,但类类型不同。但它甚至对整数也不起作用。 当我使用此单元测试进行测试时,我得到错误:。