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)可以强制转换为int
start=(int)sumhash.get(diff)@MadyDaby,将其更改为不起作用。但这是我没有尝试过的。另外,是的,它是int,但是为什么我不能将float转换成int呢?顺便说一句@Progman您的解决方案已经解决了,谢谢,但是,为什么在这里转换不起作用呢?