在Java中将对象转换为Long

Dat*_*yen 2 java casting object long-integer

我试图在Java中将Object类型转换为Long类型,我得到:

public static Long castObjectToLong(Object object) {
    return ((Long)object).longValue();
Run Code Online (Sandbox Code Playgroud)

当我运行时,它会抛出ClassCastException

saw*_*mon 17

当你写的时候 return ((Long)object).longValue();导致ClassCastException,因为Object不是Long.我的意思是如果Object o = new Long(),那么你可以使用cast((Long)对象).这就是我写的例子:

public class Test {

    public static void main(String args[]){
        System.out.println(convertToLong(10));
    }

    public static Long convertToLong(Object o){
        String stringToConvert = String.valueOf(o);
        Long convertedLong = Long.parseLong(stringToConvert);
        return convertedLong;

    }

}
Run Code Online (Sandbox Code Playgroud)

我首先将Object转换为String.Then String to Long.Please看到这段代码可以使用或不使用.


Mit*_*ari 6

你得到了,ClassCastException因为可能是你试图转换java.lang.Integerjava.lang.Long无法直接完成的。

尝试将对象转换为字符串,然后将其作为参数传递给构造函数 Long

public static Long castObjectToLong(Object object) {
   return new Long(object.toString());
}
Run Code Online (Sandbox Code Playgroud)

  • 从 Java 9+ 开始,长构造函数已被弃用。使用 Long.valueOf(object.toString()) 代替 (3认同)

Sat*_*uri 5

你可以这样尝试:

 public class HelloWorld{
public static Long castObjectToLong(Object object) {
  return Long.parseLong(object.toString());
       }
    public static void main(String []args){
       System.out.println("Hello World");
       Object object=1234;
        System.out.println(castObjectToLong(object));
    }
}
Run Code Online (Sandbox Code Playgroud)