gpt4 book ai didi

java - 表达式 user-> { some code } 怎么可能是一个 Observer 对象呢?

转载 作者:行者123 更新时间:2023-12-01 19:46:49 24 4
gpt4 key购买 nike

Guide to app architecture谷歌有一个例子,我不明白 -

UserProfileViewModel:

public class UserProfileViewModel extends ViewModel {
private LiveData<User> user;
public LiveData<User> getUser() {
return user;
}
}

UserProfileFragment:

@Override
public void onActivityCreated(@Nullable Bundle savedInstanceState) {
super.onActivityCreated(savedInstanceState);
viewModel.getUser().observe(this, user -> {
// Update UI.
});
}

当我查看LiveData时引用,只有以下observe方法:

observe(LifecycleOwner owner, Observer<T> observer)

我很困惑,方法签名不匹配:

LifecycleOwner 是支持库 Fragment,好吧。

但是表达式 user-> { some code } 怎么可能是 Observer对象?

最佳答案

表达式 user-> { some code } 是 SAM(单一抽象方法)类型,更多信息参见 stack overflow post .

简而言之,它只是语法糖:

viewModel.getUser().observe(this, new Observer<User>() {
@Override
public void onChanged(@Nullable User user) {
// Some code
}
});

关于java - 表达式 user-> { some code } 怎么可能是一个 Observer 对象呢?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52916663/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com