java将LinkedHashMap转换为扩展LinkedHashMap的类

max*_*mol 2 java casting hashmap linkedhashmap

我有一个扩展LinkedHashMap的类(EntireFile).我尝试施放:

EntireFile old = (EntireFile) functionReturningLinkedHashMap();
Run Code Online (Sandbox Code Playgroud)

它会抛出异常消息:"java.util.LinkedHashMap不能转换为com.gmail.maximsmol.YAML.GroupMap".

public class EntireFile extends LinkedHashMap<String, GroupMap>

public class GroupMap extends LinkedHashMap<String, CategoryMap>

public class CategoryMap extends LinkedHashMap<String, LinkedHashMap<String, Integer>>
Run Code Online (Sandbox Code Playgroud)

请帮我解决错误!

Jon*_*eet 5

问题是返回的引用不是对实例的引用EntireFile.如果functionReturningLinkedHashMap只返回a LinkedHashMap,则无法将其转换为a EntireFile,因为它不是一个 - 它将如何获得有关它的任何额外信息?

(根据你的例外判断,你实际上是在谈论GroupMap而不是EntireFile,但同样适用.)

没有什么特别之处LinkedHashMap这里-同样是总是如此在Java中:

Object foo = new Object();
String bar = (String) foo; // Bang! Exception
Run Code Online (Sandbox Code Playgroud)