I used equatable in flutter dart to generate some boilerplate codes. here is a class that generated some boilerplate code using equitable
import 'package:equatable/equatable.dart';
class Task extends Equatable {
final String title;
bool? isDone;
bool? isDeleted;
Task({
required this.title,
this.isDone,
this.isDeleted,
}) {
isDone = isDone ?? false;
isDeleted = isDeleted ?? false;
}
Task copyWith({
String? title,
bool? isDone,
bool? isDeleted,
}) {
return Task(
title: title ?? this.title,
isDone: isDone ?? this.isDone,
isDeleted: isDeleted ?? this.isDeleted,
);
}
Map<String, dynamic> toMap() {
final result = <String, dynamic>{};
result.addAll({'title': title});
if (isDone != null) {
result.addAll({'isDone': isDone});
}
if (isDeleted != null) {
result.addAll({'isDeleted': isDeleted});
}
return result;
}
factory Task.fromMap(Map<String, dynamic> map) {
return Task(
title: map['title'] ?? '',
isDone: map['isDone'],
isDeleted: map['isDeleted'],
);
}
@override
List<Object?> get props => [
title,
isDeleted,
isDone,
];
}
and my question is why is this code and what is this code doing? I read some documents but I didn't find the exact answer. the docs say it is used to compare with another class but why do we need to compare? also, I'm not writing any other class. so which classes are being compared? or is it not used to compare??
@override
List<Object?> get props => [
id,
title,
isDeleted,
isDone,
];
what's the purpose of this line?
also, why are we using Object
class?