在Java中,此分配有什么问题:
Map<String, Object> mObj = new HashMap<String, String[]>();
我得到:
error: incompatible types: HashMap<String,String[]> cannot be converted to Map<String,Object>
由于String[]
是Object
,所以应该可以。
如果我将这样的非参数化Map
转换为:Map<String, Object> mObj = (Map) new HashMap<String, String[]>();
,它可以工作,但是,当然,我会得到警告并且它很脏。
而且,我觉得我的第一个任务应该可以工作。
谢谢 !
PS:我不能简单地将new HashMap<String, String[]>();
更改为new HashMap<String, Object>();
,因为实际上,我调用了一个返回Map<String, String[]>();
的方法,当然,我不能更改此方法。再次感谢你。
参考方案
该错误是因为泛型不支持子类型化。 Number a = new Integer(5)
是有效的情况。但是一旦放置了泛型,它就会产生编译错误,不允许ArrayList<Number> a = new ArrayList<Integer>()
。查看此链接是否有助于https://dzone.com/articles/5-things-you-should-know-about-java-generics了解有关泛型的一些准则。
This question already has answers here: Closed 7 years ago. Possible Duplicate: What does >> and >>> mean in Java?我在一些Java代码中遇到了一些陌生的符号,尽管代码可以正确编译和运行,但对于括号在此代码中的作用却感…
HashMap <>错误。类型非法开始 - java每当我尝试编译此函数时,都会在第10行给出错误->错误消息:CandidateCode.java.10:静态HashMap类型的非法启动hm = new HashMap (); 1个错误我正在尝试在网站的编译器上对其进行编译,但是当我使用netbeans时,它可以正常工作。import java.util.*; public class Candida…
菱形运算符<>是否等于<?> - java我在util.TreeSet类中发现,其中一个构造函数正在使用具有空泛型类型的新TreeMap调用另一个构造函数。 public TreeSet(Comparator<? super E> comparator) { this(new TreeMap<>(comparator)); } new TreeMap<>是什么意思…
Java:我可以在Hashmaps中使用数组吗? - java我可以在Hashmaps中使用数组吗?如果是这样,则声明这种哈希图的确切语法是什么?谢谢 参考方案 数组也是对象。甚至像int[]这样的原始数组。Map<String,String[]> map = new HashMap<String,String[]>();
休眠映射<键,设置<值>> - java我有以下表格:@Entity @Table(name = "events") Event --id --name @Entity @Table(name = "state") State --id --name @Entity @Table(name = "action") Action --id …