アダプタでデータをバインドするときは、Modelを使用してこれを行います。モデルを判断する良い方法はnullですか?
class ModelA{
ModelB b;
......
geters and setters
}
class ModelB{
ModelC c;
......
geters and setters
}
class ModelC{
String name;
......
geters and setters
}
私は名前を使用したいとき、私はこれを行う必要があります。
bindData(ModelA a) {
String name = a.getModelB().getModelC().getName();
mTextView.setText(name);
}
が、モデルがnullの場合もあるので、私はこの追加:私は使用をしようと考えるしかし
bindData(ModelA a) {
if(a != null && a.getModelB() != null
&& a.getModelC() != null
&&!TextUtils.isempty(a.getModelB().getModelC().getName())) {
String name = a.getModelB().getModelC().getName();
mTextView.setText(name);
}
}
をキャッチが楽になる可能性があるので、私はこれを変更しました:
bindData(ModelA a) {
try{
String name = a.getModelB().getModelC().getName();
mTextView.setText(name);
}catch (NullPointerException e) {
......
}
}
モデルがnullであると判断する良い方法はありますか?もしそうでなければ、 "もし"と "試してください"が良いですか?
私はあなたのユースケースを扱う良い方法はないと思います。可能な代替として、あなたのコードでそのような入れ子クラス構造を維持しないことをお勧めしますか?本当に深さ3の階層が必要ですか? –
@TimBiegeleisenはい、これはサンプルに過ぎませんが、3つ以上の奥行きを使用していても、それを変更することはできません。 –