gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-01 22:07:26 25 4
gpt4 key购买 nike

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

Node<K,V>[] newTab = (Node<K,V>[])new Node[newCap];

类似的代码无法编译here使用类似的语法(如下所示),给出错误:Type safety: Unchecked cast from Node[] to Node<K,V>[]

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<K,V>[] newTab = (Node<K,V>[])new Node[10];不同于Node<String,String>[] newTab = (Node<String,String>[])new Node[10];

最佳答案

问题是 you can't create an array of a generic type in Java所以你被迫转换一个原始类型数组 Node[]Node<K,V>[]用手。

该操作名为 type conversion并且它被用于多种场合。在这种情况下,您正在进行不安全的沮丧,这将产生警告

Type Safety: unchecked cast from Node[] to Node<K,V>[]

但你可以抑制它以防万一。请注意,没有办法阻止此警告,您可以考虑使用 List<Node<K,V>>就不会有这样的问题。

关于java - 从原始类型转换为泛型类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32414257/

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