2

Java(Android)の質問があります。私はその属性を持つクラス(クラスA)を持っており、クラスA内にプライベートクラス(クラスBとC)を作成しました。クラスBとCはAsyncTaskです。それが重要かどうかはわかりません。

ClassAの属性をBとCから読み取ることはできますが、属性AをBまたはCから変更するとどうなりますか?これらの変更は永続的なものではないと思います。アクセスできるので奇妙なことです...したがって、変更を永続的なものにしたい場合は、ClassBから、、、、 classA.atrributeA=atributeAのようにする必要があります。 ;

AsyncTaskを使用しているためなのか、それとも通常の動作なのかはわかりません。コンセプトに問題があると思います...

ありがとうございました

4

2 に答える 2

3

これらの変更は永続的なものではないと思います

それは正しくありません。ネストされたクラスからインスタンスの属性に加えられた変更Aは、他の方法で行われた変更と同じです。

期待どおりに機能していないように見える場合は、ネストされたクラスインスタンスが、表示しているインスタンスとは異なるインスタンスに属している可能性がありますA。しかし、それは憶測です。

とにかく、具体的な「予期しない動作」がある場合は、それを説明する必要があります...そしてできればSSCCEを提供してください...説明を提供したい場合。

于 2013-03-25T11:06:31.793 に答える
0

それが動作します。次に例を示します:https ://stackoverflow.com/a/5770638/1127492

本当の問題は、これらの属性を内部クラスと外部クラスのどちらから変更するかということです。2人のライターが同じ属性を同期的に変更すると、予期しない結果が生じるため、これを行わないことをお勧めします。そのため、Eclipseにはこのアクセスを制限するための設定オプションがあります。

于 2013-03-25T11:11:20.367 に答える