我有一个java(android)问题。 我有一个类(A类)及其属性,我在类A中创建了私有类(类B和C).B类和C类是AsyncTask ..我不知道这是否重要。
我可以从B和C中读取ClassA的属性,但是,如果我从B或C修改属性A会发生什么?我认为这些变化不是永久性的,这对我来说很奇怪,因为我可以访问它们......所以,如果我想要的变化是永久物,我必须从ClassB做的事情,比如,,, classA.atrributeA = atributeA ;
我不知道是不是因为我正在使用AsyncTask,或者这是正常行为。我认为我对概念存在一些问题......
谢谢
答案 0 :(得分:3)
我认为这些变化不是永久性的
这是不正确的。从嵌套类对A
实例的属性所做的更改与以其他方式进行的更改没有什么不同。
如果他们没有出现按预期工作,可能嵌套的类实例属于A
的不同实例而不是您正在查看的实例。但那是猜测。
无论如何,如果你有一些具体的“意外行为”,你需要描述它......最好提供一个SSCCE ...如果你想让我们提供解释。
答案 1 :(得分:0)
它会起作用。以下是一个示例:https://stackoverflow.com/a/5770638/1127492
真正的问题是,是否要从内部类和外部类修改这些属性。我建议不这样做,因为如果两个编写器同步修改相同的属性,它将导致意外的结果。这就是为什么Eclipse中有一个偏好选项来限制这种访问。