2016-06-30 12 views
-2

Ich versuche, einen Objekttyp Long-Typ in Java zu konvertieren, und ich habe als:Cast, ein Objekt zu lange in Java

public static Long castObjectToLong(Object object) { 
    return ((Long)object).longValue(); 

Wenn ich laufen, wirft es Classcast

+1

Was erwarten Sie von einem 'Objekt' in' Long'? –

+1

Wie wäre es mit 'public static long castObjectToLong (...' – Fildor

+0

Rückgabetyp fehlt in Ihrer Methode! – Unknown

Antwort

10

wenn Sie return ((Long)object).longValue(); schreiben Classcast verursacht, weil Objekt nicht Long.That ich meine, wenn Object o = new Long(), dann können Sie Guss ((Long) Objekt) machen .Dies ist das Beispiel, das ich schrieb mag, ist nur:

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; 

    } 

} 

Ich co nvert Object to String zuerst. Dann String to Long. Bitte beachten Sie, dass dieser Code für Sie geeignet ist oder nicht.

1

Sie können wie folgt versuchen:

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)); 
    } 
} 
0

Der folgende Code kann helfen:

public class CastObjectToLong { 
    public Long castLongObject(Object object) { 
     Long result = 0l; 
     try { 
      if (object instanceof Long) 
       result = ((Long) object).longValue(); 
      else if (object instanceof Integer) { 
       result = ((Integer) object).longValue(); 
      } else if (object instanceof String) { 
       result = Long.valueOf((String) object); 
      } 
      System.out.println(result); 
     } catch (Exception e) { 
      System.out.println("============= cannot cast"); 
      // do something 
     } 
     return result; 
    } 

    public static void main(String... args) { 
     CastObjectToLong castObjectToLong = new CastObjectToLong(); 
     Object object1 = 12; // Integer 
     Object object2 = "12"; // String 
     Object object3 = 12l; // String 
     Object object4 = "abc"; // String 

     castObjectToLong.castLongObject(object1); 
     castObjectToLong.castLongObject(object2); 
     castObjectToLong.castLongObject(object3); 
     castObjectToLong.castLongObject(object4); // exception here 
    } 

} 

Ausgänge:

==============