Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/338.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何播放列表<;映射<&燃气轮机&燃气轮机;进入列表<;地图<;字符串,字符串>>;?_Java_Casting - Fatal编程技术网

Java 如何播放列表<;映射<&燃气轮机&燃气轮机;进入列表<;地图<;字符串,字符串>>;?

Java 如何播放列表<;映射<&燃气轮机&燃气轮机;进入列表<;地图<;字符串,字符串>>;?,java,casting,Java,Casting,我正在制作bukkit插件,其中一个函数返回ListgetMapList返回类型List>circle=FileManager.area.getMapList(“circles”); 您可以通过强制转换为原始类型来丢弃所有泛型,(列表): List circle=(List)FileManager.area.getMapList(“circles”); 请注意,与大多数类型转换一样,这是不安全的-最好找到一种方法来传递正确的类型信息,正如其他答案所建议的那样。Map是Map的子类型,但由于泛型

我正在制作bukkit插件,其中一个函数返回
List
getMapList
返回类型
List>circle=FileManager.area.getMapList(“circles”);

您可以通过强制转换为原始类型来丢弃所有泛型,
(列表)

List circle=(List)FileManager.area.getMapList(“circles”);

请注意,与大多数类型转换一样,这是不安全的-最好找到一种方法来传递正确的类型信息,正如其他答案所建议的那样。

Map
Map
的子类型,但由于泛型不是不变的,这并不意味着
List
List的一个子类型主要用于从某些定义的值赋值,如:
Map m=新的HashMap()

而且使用是不好的,因为您需要显式地强制转换它(这意味着您事先知道您的运行时类型)

通常,您会显式指定返回值。因此,让我们通过案例来了解:

1) 您需要编写非常通用的函数,该函数获取字符串并返回List>,然后您可以这样编写

<K, V> List<Map<K, V>> getMapList(String s) {
      ... 
} 
List getMapList(字符串s){
... 
} 
Java将根据您分配给的对象推断K,V的类型

2) 您希望返回某些特定类型,然后使用该类型:

<Integer, String> List<Map<Integer, String>> getMapList(String s) {
      ... 
} 
List getMapList(字符串s){
... 
} 

您的确切错误是什么。问问题时,一定要把你的准确错误贴出来。错误是任何编程语言的有意义的响应。不发布类似于说“我的车坏了,请帮助”并附上一张车的图片。确切的错误-列表-请帮助不能使用
列表
代替?抱歉,这是bukkit API的方法,我无法更改it@MarounMaroun尽管如此,编译器对类型非常挑剔,只允许精确映射。记住
是一个源代码集合,PECS,etc@XsergeiX这个答案建议更改您的声明,而不是API的声明
List<Map<?, ?>> circle = FileManager.area.getMapList("circles");
List<Map<String, String>> circle = (List) FileManager.area.getMapList("circles");
List<Map<String, String>> circle = (List<Map<String, String>>) (Object) FileManager.area.getMapList("circles");
<K, V> List<Map<K, V>> getMapList(String s) {
      ... 
} 
<Integer, String> List<Map<Integer, String>> getMapList(String s) {
      ... 
}