Метод cast
Метод cast класса Class выполняет приведение переданного объекта
к типу, который представляет данный объект Class. В единственный параметр
мы передаем объект, который нужно привести к типу. Метод возвращает тот же
объект, но уже с типом, соответствующим данному Class. Если объект
не может быть приведен к указанному типу, выбрасывается исключение
ClassCastException.
Метод удобен, когда тип известен только во время выполнения, например, при работе с рефлексией или обобщениями.
Синтаксис
Class<T> clazz = T.class;
T obj = clazz.cast(object);
Пример
Давайте приведем объект типа Object к типу String
с помощью метода cast:
public class Main
{
public static void main(String[] args)
{
Object obj = "abcde";
Class<String> clazz = String.class;
String res = clazz.cast(obj);
System.out.println(res);
}
}
Результат выполнения кода:
"abcde"
Пример
Давайте попробуем привести объект типа Integer к типу String.
Так как эти типы несовместимы, метод выбросит исключение:
public class Main
{
public static void main(String[] args)
{
Object obj = 12345;
Class<String> clazz = String.class;
try
{
String res = clazz.cast(obj);
System.out.println(res);
}
catch (ClassCastException e)
{
System.out.println("ClassCastException");
}
}
}
Результат выполнения кода:
"ClassCastException"
Пример
Давайте используем метод cast для безопасного приведения
объекта из коллекции Object к типу Integer:
import java.util.List;
public class Main
{
public static void main(String[] args)
{
List<Object> list = List.of(1, 2, 3, 4, 5);
Class<Integer> clazz = Integer.class;
for (Object obj : list)
{
Integer res = clazz.cast(obj);
System.out.println(res);
}
}
}
Результат выполнения кода:
1
2
3
4
5
Смотрите также
-
метод
isInstance,
который проверяет принадлежность объекта типу -
метод
isAssignableFrom,
который проверяет совместимость типов -
метод
getName,
который возвращает полное имя типа -
класс
Class,
который представляет информацию о типе