2016-06-30 2 views
-2

Я пытаюсь преобразовать тип объекта в Лонг-типа в Java, и я получил как:Cast объекта Чтобы Лонга в Java

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

Когда я бегу, он бросает ClassCastException

+1

Что вы ожидаете от литья '' Object' к Long'? –

+1

Как насчет 'public static long castObjectToLong (...' – Fildor

+0

Возвращаемый тип отсутствует в вашем методе! – Unknown

ответ

10

когда вы пишете return ((Long)object).longValue(); вызывает ClassCastException, потому что объект не Long.That Я имею в виду, если объект о = новый Long(), то вы можете сделать литой (объект (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; 

    } 

} 

IC onvert Object to String first.Then String to Long. Пожалуйста, посмотрите, как этот код подходит для вас или нет.

1

вы можете попробовать, как это:

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

Следующий код может помочь:

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 
    } 

} 

Выходы:

============= не может бросить

Смежные вопросы