我是Flutter的新手,我尝试过上课,但遇到了一些问题。 我有一个类UsersList和User。 当我使用作为用户列表的UsersList时,如何使用foreach方法? length,last,remove Last,add,...属性也不可用。该怎么做?
我的班级UsersList和用户:
class UsersList{
List<User> users;
UsersList({
this.users
});
factory UsersList.fromJson(List<dynamic> json) {
List<User> users= List<User>();
users= json.map((i) => User.fromJson(i)).toList();
return UsersList(
users : users
);
}
Map<String, dynamic> toJson() => {
"users": users,
};
@override
String toString() {
return '{'
'users: ${this.users},'
'}';
}
}
class User{
int type;
String name;
bool gender;
User({
this.type,
this.name,
this.gender,
});
factory User.fromJson(Map<String, dynamic> json){
return User(
type : json['type'],
name: json['name'],
gender : json['gender'],
);
}
Map<String, dynamic> toJson() => {
"type" : type,
"name" : name,
"gender" : gender,
};
@override
String toString() {
return '{'
'type : ${this.type},'
'name: ${this.name},'
'gender : ${this.gender},'
'}';
}
}
这是我的功能: 我在此使用UserList类。当我不使用类时,此代码有效...
static UsersList getUsersValid(UsersList users, num distance)
{
//**************** Initialisation ****************//
List<String> _listValidUsersName = [];
UsersList _filteredUsers = UsersList();
//**************** Script ****************//
users.forEach((user) // ERROR => The method 'forEach' isn't defined for the type 'UsersList'.
{
if(distance <= 100 && !_listValidUsersName.contains(user.name))
{
_listValidUsersName.add(user.name);
}
});
if(_listValidUsersName.length > 0)
{
users.forEach((user) // ERROR => The method 'forEach' isn't defined for the type 'UsersList'.
{
if (_listValidUsersName.contains(user.name))
{
if (_filteredUsers.length > 0 && _filteredUsers.last.name == user.name)
// ERROR => The getter 'length' isn't defined for the type 'UsersList'
// ERROR => The getter 'last' isn't defined for the type 'UsersList'
{
_filteredUsers.removeLast();
_filteredUsers.add(user);
}
else {
_filteredUsers.add(user);
}
}
});
}
if (_filteredUsers.length <= 0)
{
throw MyException.noData();
}
return _filteredUsers;
}
答案 0 :(得分:1)
一个类就像包裹它的变量的父类。要在类中调用变量,您应该使用
users.users.forEach