web-dev-qa-db-fra.com

Cast un objet trop longtemps dans Java

J'essaie de convertir un type d'objet en type long en Java et j'ai obtenu comme:

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

Quand je cours, il jette ClassCastException

4
Dat Tan Nguyen

Le code suivant peut vous aider:

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
    }

}

Les sorties:

12

12

12

============= impossible de caster

1
Luan Vo