Reputation: 17311
in this below class I have a private constructor with getter
, unfortunately, I cant use this getter as userDao
from outside of class, I get this error:
Instance member 'userDao' can't be accessed using static access.
class MydbModel {
UserDao _userDao;
MydbModel._(this._userDao);
static Future<MydbModel> create() async => MydbModel._(await fn());
static fn() {
MyDatabase myDatabase = MyDatabase();
myDatabase.initialDatabase();
return myDatabase.getUserDao();
}
UserDao get userDao=>_userDao;
}
for example:
final UserDao userDao = MydbModel.userDao;
this implementation means i use await
on this constructor without create new instance from that to use and define this codes:
MyDatabase myDatabase = MyDatabase();
myDatabase.initialDatabase();
return myDatabase.getUserDao();
for example:
class MyDatabase {
AppDatabase db;
UserDao userDao;
Future<void> initialDatabase() async {
db = await $FloorAppDatabase.databaseBuilder('flutter_database.db').build();
}
UserDao getUserDao() {
return db.userDao;
}
}
Upvotes: 0
Views: 1094
Reputation: 89995
final UserDao userDao = MydbModel.userDao;
You're trying to access an instance getter through the class. Either your getter and the private member need to be static
or your need to construct an instance of MydbModel
first.
Upvotes: 1