[英]How to convert object to long data type java
我有這段代碼,給我一個錯誤?
public int part(Object key) {
long clientId = (long) key;
...
}
下面是錯誤:
java.lang.ClassCastException: java.lang.Integer cannot be cast to java.lang.Long
不知道為什么會引發異常。
如注釋中所述,Java不允許將一種原始包裝器類型轉換為另一種原始類型,即使在原始類型本身上允許進行轉換。
您的異常stacktrace顯示key參數是一個Integer對象。 如果是這樣,則只需使用專門為這種類型的轉換創建的Integer方法:
long clientId = ((Number) key).longValue();
您最好非常確定該鍵始終是一個Number對象,並且不為null才能起作用。 在調用此方法之前,您可能需要測試null。
即使可以將int
轉換為Long
,也不能將Integer
轉換為long
。 這將為您工作:
Long clientId = new Long(key)
如果Integer為空,則拋出NPE。 不過,我會自行處理錯誤。 :)
或者,您可以使用:
Long clientId = Long.valueOf(key.longValue());
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.