我有一个文件,其中变量在java意义上是“静态的”,我想通过文件名访问它们。我举了一个例子。
private var user:User?= null// this is put directly inside the file
fun saveMe(user: User?){
saveObject(user, USER_FILE)
FileStorage.user = user// this method is not allowed. How to access the top level user variable from here?
}
我不知道之前是否曾经问过这个问题,我想问题很清楚,关于从具有相同名称参数的函数访问顶级变量。 我不想重命名任何一个变量。
答案 0 :(得分:0)
选项1:将您的文件包装到object
:
object FileStorage {
// all your previous file content
}
然后FileStorage.user
意味着你想要的。
选项2(如果您的文件有包装声明):
fun saveMe(user: User?){
saveObject(user, USER_FILE)
your.package.user = user
}
选项3:添加间接:
private var user:User?= null
fun setTopLeverUser(_user: User?) { user = _user; }
fun saveMe(user: User?){
saveObject(user, USER_FILE)
setTopLevelUser(user)
}