Приведение утверждает, что тип среды выполнения объекта совместим с данным статическим типом, и, таким образом, позволяет вызывать методы этого типа для объекта.
Здесь obj - это объект типа Integer, но доступный только через ссылку на объект:
Object obj = new Integer(1);
Приведение позволяет снова рассматривать его как целое число (или некоторый суперкласс Integer):
System.out.println(((Integer) obj).intValue());
ClassCastException происходит, когда указанный статический тип не соответствует типу времени выполнения объекта:
System.out.println(((Float) obj).intValue()); // runtime error
Вы можете найти тип среды выполнения любого объекта, используя getClass () и различные методы Class:
System.out.println(obj.getClass()); // prints "class java.lang.Integer"