Java 使用JSON从另一个函数获取值

Java 使用JSON从另一个函数获取值,java,Java,我正在努力学习Java,现在我有一个小问题。我试图从一个方法到另一个方法获取一个值: public void Save(View v){ Contador c = new Contador(); c.nContador = "123"; c.descricao = "Teste"; c.tipoTarifa = "Tri"; c.leituras = new ArrayList<Leitura>();

我正在努力学习Java,现在我有一个小问题。我试图从一个方法到另一个方法获取一个值:

public void Save(View v){
        Contador c = new Contador();
        c.nContador = "123";
        c.descricao = "Teste";
        c.tipoTarifa = "Tri";

        c.leituras = new ArrayList<Leitura>();

        Leitura l1 = new Leitura();
        l1.tipoLeitura = "HP";
        l1.valorLeitura = "321";

        Leitura l2 = new Leitura();
        l1.tipoLeitura = "HV";
        l1.valorLeitura = "654";

        c.leituras.add(l1);
        c.leituras.add(l2);

        Gson gson = new Gson();
        String json = gson.toJson(c);
        System.out.print(json);
    }

public void Read(View v){
    Toast
            .makeText(this, "I want the json here", Toast.LENGTH_LONG)
            .show();
    }
公共作废保存(视图五){
Contador c=新Contador();
c、 nContador=“123”;
c、 descripcao=“Teste”;
c、 tipoTarifa=“Tri”;
c、 leituras=新的ArrayList();
Leitura l1=新Leitura();
l1.tipoLeitura=“HP”;
l1.valorLeitura=“321”;
Leitura l2=新Leitura();
l1.tipoLeitura=“HV”;
l1.valorLeitura=“654”;
c、 添加(l1);
c、 添加(l2);
Gson Gson=新的Gson();
字符串json=gson.toJson(c);
System.out.print(json);
}
公共无效读取(视图五){
干杯
.makeText(这是“我想在这里使用json”,Toast.LENGTH\u LONG)
.show();
}
所以我有两个按钮:一个用于保存,一个用于读取。当我按下“Save”键时,会调用方法“Save”,并创建字符串json。 当我点击“读取”按钮时,我想得到相同的字符串。
如何进行此操作?

注意:请使用来命名类、属性和方法。方法名称应为混合大小写,首字母小写,每个内部单词的首字母大写


方法1

您可以在
save()
中返回生成的字符串,并在
read()
中调用它以获取它

public String save(View v) {
    // beginning of implementation ommitted for brevity
    Gson gson = new Gson();
    String json = gson.toJson(c);
    return json;
}

public void read(View v) {
    String json = save(v);
    Toast.makeText(this, json, Toast.LENGTH_LONG).show();
}
我不建议这样做,因为这样会在
read()
方法中创建对
save()
的依赖关系


方法2

方法与以前相同,但没有依赖性,使用辅助方法

public String save(View v) {
    // beginning of implementation ommitted for brevity
    Gson gson = new Gson();
    String json = gson.toJson(c);
    return json;
}

public void read(View v, String json) {
    Toast.makeText(this, json, Toast.LENGTH_LONG).show();
}

public void process(View v) {
    String json = save(v);
    read(v, json);
}
我仍然建议您这样做,因为您不会在其他任何地方调用字符串,每次调用
process()
获取
read()
所需的输入时,您都会间接调用
save()


方法3

设置包含所创建字符串的类属性,并在
read()
中使用它


是否需要从
Save
方法返回字符串
json
?因此我有两个按钮,一个用于保存,一个用于读取。当我单击“保存”时,我创建了字符串json。当我点击“读取”按钮时,我想得到相同的字符串。这两种方法都非常有效。很简单,抱歉问了这么愚蠢的问题。非常感谢。我添加了一种新方法,但仍然推荐第三种方法。这是解决这个问题的更好的设计。
public class StackOverflowExample {

    private String json;

    public String save(View v) {
        // beginning of implementation ommitted for brevity
        Gson gson = new Gson();
        json = gson.toJson(c); // save the JSON in your class attribute
        System.out.print(json);
    }

    public void read(View v) {
        Toast.makeText(this, json, Toast.LENGTH_LONG).show();
    }

}