Ответ
В Dart Object — это корневой класс всей иерархии типов. Все типы, включая встроенные (int, String, bool) и пользовательские классы, неявно наследуются от Object.
Ключевые особенности:
- Универсальный тип: Переменная типа
Objectможет хранить значение любого типа. - Базовые методы: Все объекты имеют методы
toString(),hashCode,runtimeTypeиnoSuchMethod(). - Приведение типов: Для доступа к специфичным методам требуется явное приведение с помощью оператора
asили проверка черезis.
Пример использования:
void main() {
// Object может хранить любой тип
Object value = 42; // int
value = 'Hello Dart'; // String
value = [1, 2, 3]; // List<int>
// Для работы с конкретным типом нужна проверка
if (value is List) {
print('Длина списка: ${value.length}');
}
// Или приведение (может выбросить исключение)
try {
List<int> list = value as List<int>;
print(list.first);
} catch (e) {
print('Приведение не удалось: $e');
}
}
Object часто используется в дженериках, когда нужна максимальная гибкость, например, List<Object> может содержать элементы разных типов.
Видео-ответы
▶
Техническое интервью Java Developer - Андрей Терехов
▶
Техническое интервью Java Trainee - Павел Павлюкович
▶
Моковое собеседование на Junior Android-разработчика
▶
Проводим собеседование в Android-команду Тинькофф в прямом эфире
▶
Собеседование Junior Android разработчика на ОФФЕР в РЕАЛЬНОМ времени / Мобильный разработчи
▶
Техническое интервью Java Developer - Максим Стеблевский
▶
Техническое интервью Java Developer - Дмитрий Квасников
▶
Техническое интервью Java Developer - Михаил Кончиц
▶
Тестовое собеседование Java разработчика #20 - Игорь Самойлов