Object.getClass()
Возвращает класс объекта во время выполнения.
Доступно с: Java 1.0
Синтаксис
public final Class<?> getClass()Возвращаемое значение
Class<?>Объект Class — у него есть getName() и getSimpleName().
Примеры
Настоящий класс объекта, даже если переменная объявлена общим типом:
void main() {
Object a = "text";
Object b = 42;
List<String> c = new ArrayList<>();
IO.println(a.getClass().getSimpleName());
IO.println(b.getClass().getName());
IO.println(c.getClass().getSimpleName());
}Результат:
String
java.lang.Integer
ArrayListПримечания
Для проверки типа в обычном коде лучше instanceof: он учитывает наследников. getClass() == Other.class проверяет точное совпадение класса — так иногда пишут в equals(). getSimpleName() удобен в сообщениях об ошибках: e.getClass().getSimpleName().
См. также
- instanceof — Проверяет, является ли объект экземпляром типа, и сразу даёт переменную этого типа.
- Object.equals() — Сравнивает объекты по смыслу. По умолчанию работает как ==, поэтому в своих классах его переопределяют.
Вопросы и ответы по теме
В учебнике
- Методы класса Object — Методы toString, equals и hashCode в Java: как их переопределять и почему equals и hashCode всегда меняют вместе.