﻿# V6112\. Calling the 'getClass' method repeatedly or on the value of the '\.class' literal will always return the instance of the 'Class<Class\>' type\.

Метод 'getClass' используется для получения типа объекта, у которого данный метод был вызван\. Аналогично можно использовать литерал 'class' непосредственно с самим типом, а не объектом\.

При использовании метода 'getClass' вместе с литералом 'class' будет получена информация о типе 'Class'\. Рассмотрим пример:

```cpp
var typeInfo = Integer.class.getClass();
```

В результате вызова данного метода переменная 'typeInfo' будет хранить информацию о типе 'Class'\. Это связано с тем, что литерал 'class' хранит информацию типа 'Class<Integer\>'\. Когда происходит вызов метода 'getClass', то информация будет, соответственно, о типе 'Class', а не о типе 'Integer'\. Если нужно получать информацию о типе 'Integer', то достаточно использовать только литерал 'class':

```cpp
var typeInfo = Integer.class;
```

Помимо этого, может произойти случайное дублирование вызова 'getClass':

```cpp
Integer i = 0;
var typeInfo = i.getClass().getClass();
```

Как и в первом примере, при первом вызове 'getClass' будет получен объект типа 'Class<Integer\>'\. При повторном вызове 'getClass' будет получена информация о типе 'Class', а не о типе 'Integer'\. Чтобы получить информацию именно о типе 'Integer', достаточно вызвать метод один раз:

```cpp
Integer i = 0;
var typeInfo = i.getClass();
```

Если требуется информация именно о типе 'Class', то достаточно такой конструкции:

```cpp
var classType = Class.class;
```

Допускается использование с 'Class\.class' метода 'getClass', так как результат не меняется:

```cpp
var classType = Class.class.getClass();
```