1

备忘录解决方案

Soldier alpha;
Soldier bravo;

alpha = new Soldier(); //Create alpha
alpha.age = 21; //Assign 21 to the variable alpha.age

bravo = alpha //Assign alpha reference to bravo. bravo is now alpha not the copy.
bravo.age = 42 //Assign 42 to the variable bravo.age.

System.out.print("Alpha is" + alpha.age + "years old.");

阿尔法今年 42 岁。

我有2个片段。我希望他们使用相同的变量。这意味着如果一个片段更改了变量,我不需要将它发送给另一个片段来获取它。

我用 C 语言开发,为此我只需要发送变量的内存地址。

在 Java/Android 中做到这一点的最佳方法是什么?

提前致谢 :)

4

4 回答 4

2

使该变量成为可以由 setter 修改的对象。然后在您的片段中保留对该对象的引用。由于您的片段将指向相同的引用,因此双方都可以看到对 Object 的任何更改。

于 2013-08-26T18:07:48.023 回答
0

正如@dkatzel 所说,使用一个对象并通过设置器对其进行修改。以下是 Object 类的示例:

public class News {

private String title;
private String content;

public void setTitle(String tit) {
    this.title = tit;
}

public void setContent(String cont) {
    this.content = cont;
}

public String getTitle() {
    return this.title;
}

public String getContent() {
    return this.content;
}

}
于 2013-08-26T18:17:10.203 回答
0

dkatzel 的解决方案会起作用,但我个人对 setter 和 getter 太懒了。我这样做的方式:我有一个Constants.java类,我在其中存储需要从整个应用程序访问的静态变量(尽管其中一些不是常量)。工作正常。例子:

 public static boolean isAboutShowing = false;
 public static final int TOAST_TYPE_OK = 0;

顺便说一句,要使用 setter 和 getter 访问某些类字段,您需要该类的实例。这意味着还有 1 个Object存储在内存中。这肯定不会真正减慢您的应用程序,但多 1Object就是多 1 Object:)

于 2013-08-26T18:10:39.427 回答
0

只需创建一个私有静态实例并使用两个片段获取/设置它即可。

但是,如果您打算在多个线程中使用静态变量,请了解使用静态变量的缺点。

于 2013-08-26T18:11:37.250 回答