2

我有一个 java (android) 问题。我有一个类(A 类)及其属性,并且我在 A 类中创建了私有类(B 类和 C 类)。B 类和 C 类是 AsyncTask .. 我不知道这是否重要。

我可以从 B 和 C 读取 ClassA 的属性,但是,如果我从 B 或 C 修改属性 A 会发生什么?我认为这些更改不是永久的,这对我来说很奇怪,因为我可以访问它们......所以,如果我希望这些更改是永久的,我必须从 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

真正的问题是,是否要从内部类和外部类修改这些属性。我建议不要这样做,因为如果两个编写者同时修改同一个属性,会导致意想不到的结果。这就是为什么 Eclipse 中有一个首选项来限制这种访问。

于 2013-03-25T11:11:20.367 回答