Java 使用JSON从另一个函数获取值
我正在努力学习Java,现在我有一个小问题。我试图从一个方法到另一个方法获取一个值: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>();
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();
}
}