我有一些Map 0f Map 0f列表
我为速记创建了这样的界面
AnswerState = [
Name: aaa, Number: bbbb
]
但是当我尝试实例化真实对象时,它会给我public interface ShortName extends Map<String, Map<String, List<String>>>
ClassCastExcpetion
有什么方法可以为Map简化类型?
答案 0 :(得分:0)
Java没有类型别名的概念(请参阅This question),但是您可以创建其他类型的新类,以扩展您的Map
;
class NewType extends HashMap<String, Map<String, List<String>>>
但这不是该类型的“简写”,而是一种新的类型-因此强制转换将不起作用等。
答案 1 :(得分:0)
这是让速记部分工作的一种方法。您需要实现ShortName才能使ShortName强制转换起作用。
您可以执行public static class NewType extends HashMap<String, Map<String, List<String>>> implements ShortName {}
。然后,您可以像在ShortName testObj = (ShortName) new NewType();
import java.util.Map;
import java.util.HashMap;
import java.util.List;
public class MyClass {
public static void main(String args[]) {
ShortName testObj = (ShortName) new NewType();
System.out.println("ok");
}
public interface ShortName extends Map<String, Map<String, List<String>>> {
}
public static class NewType extends HashMap<String, Map<String, List<String>>> implements ShortName {}
}