如何将对象转换为长数据类型java
我有一个错误代码如何将对象转换为长数据类型java,java,object,long-integer,Java,Object,Long Integer,我有一个错误代码 public int part(Object key) { long clientId = (long) key; ... } 以下是错误: java.lang.ClassCastException: java.lang.Integer cannot be cast to java.lang.Long 不确定它引发异常的原因。正如注释中所解释的,Java不允许将一种原语包装类型强制转换为另一种原语类型,即使允许对原语本身进行强制转换 异常stacktr
public int part(Object key) {
long clientId = (long) key;
...
}
以下是错误:
java.lang.ClassCastException: java.lang.Integer cannot be cast to java.lang.Long
不确定它引发异常的原因。正如注释中所解释的,Java不允许将一种原语包装类型强制转换为另一种原语类型,即使允许对原语本身进行强制转换 异常stacktrace显示键参数是整数对象。如果是这样,只需使用Integer专门为这种类型的转换创建的方法:
long clientId = ((Number) key).longValue();
您最好确保键始终是一个数字对象,并且不为null,这样才能工作。在调用此方法之前,您可能需要测试null。您不能将
整数
转换为长
,即使您可以从int
转换为长
。这将对您有用:
Long clientId = new Long(key)
如果整数为空,则引发NPE。不过,我会让您自行处理错误。:)
或者,您可以使用:
Long clientId = Long.valueOf(key.longValue());
java.lang.Integer
无法转换为java.lang.Long
。感谢您使用气垫船。我被绑了一会儿。