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
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