Encodera

Спасибо, что читаете!

Пожертвуйте сайту, мы стараемся ради вас.

Справочник Java

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 всегда меняют вместе.

Спасибо, что читаете!

Пожертвуйте сайту, мы стараемся ради вас.