Java 包含长值的哈希表上的Get方法
我有一个哈希表,我声明为:Java 包含长值的哈希表上的Get方法,java,hashtable,Java,Hashtable,我有一个哈希表,我声明为: Hashtable sumhash=newhashtable() 现在,当我使用以下命令检查是否存在密钥时: if(sumhash.containsKey(diff) == true){ start = sumhash.get(diff); } //diff contains a Long value. 当我检查哈希表中是否存在diff时,它会工作,但当我尝试使用get()方法获取vaule时,它会给我错误:不兼容类型:Long无法转换为int 我是Java
Hashtable sumhash=newhashtable()代码>
现在,当我使用以下命令检查是否存在密钥时:
if(sumhash.containsKey(diff) == true){
start = sumhash.get(diff);
} //diff contains a Long value.
当我检查哈希表中是否存在diff
时,它会工作,但当我尝试使用get()
方法获取vaule时,它会给我错误:不兼容类型:Long无法转换为int
我是Java新手,提前谢谢。您应该使用.intValue()强制转换它。
这里的问题是,在哈希表中,您将值存储为长对象,因此您需要的不仅仅是括号来强制转换。这里有一个更全面的解释:什么类型是start
?即使在哈希表中有Long
对象,它也是int
吗?这行代码是导致错误的原因吗<代码>开始=sumhash.get(diff)代码>可以强制转换为intstart=(int)sumhash.get(diff)代码>@MadyDaby,将其更改为不起作用。但这是我没有尝试过的。另外,是的,它是int,但是为什么我不能将float转换成int呢?顺便说一句@Progman您的解决方案已经解决了,谢谢,但是,为什么在这里转换不起作用呢?