Ответ
В 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> может содержать элементы разных типов.
Видео-ответы
▶
▶
▶
▶
▶
▶
▶
▶
▶