gpt4 book ai didi

java - 新 POJO 对象的问题

转载 作者:行者123 更新时间:2023-12-01 11:58:50 25 4
gpt4 key购买 nike

我刚刚制作了我的第一个 POJO 类,它采用两个字符串和一个字符串数组,并将它们组合成一个(由于缺乏更好的术语)包。直到最后一部分,一切似乎都进展顺利。这是我的代码:

class dataPOJO extends Phone_Save {
String fName;
String cName;
String[] cText;

public dataPOJO() {
fName = file_name;
cName = cname;
cText = ctext;

}

public String getName() {
return cName;
}

public void setName(String cName) {
this.cName = cName;
}

public String getFileName() {
return fName;
}

public void setFileName(String fName) {
this.fName = fName;
}

public String[] getRemainder() {
return cText;
}

public void getRemainder(String[] cText) {
this.cText = cText;
}

public String toString() {
String savePackage = "File Name: " + getFileName() + "\n";
savePackage += "CName: " + getName() + "\n";
savePackage += getRemainder() + "\n";
return savePackage;
}

public static void main(String[] args) {


dataPOJO combine = new dataPOJO();
combine.setName(cName);
combine.setFileName(fName);
combine.setRemainder(cText);
System.out.println(combine);
}
}

不幸的是,我无法将Name 设置为我上面引用的任何字符串。对我来说,似乎我应该能够做到。我无法在其中输入默认名称,例如:

combine.setName("default name");

因为名称来自用户输入并且每次都不同。我的问题是如何将下面的 String 数组的值设置为上面引用的 cName 之类的字符串?谢谢!添加代码

公共(public)类 Phone_Save 扩展了 ActionBarActivity {

String[] ctext;
public int doc_id = 0;
String cname;
Button fileName;
Button loadText;
String file_name;

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_phone_save);
Intent save_intent = getIntent();
Bundle bundle = save_intent.getExtras();
EditText file_name_edit = (EditText) findViewById(R.id.editText);
final TextView loaded_text = (TextView)findViewById(R.id.loaded_text);
file_name = file_name_edit.getText().toString();
fileName = (Button) findViewById(R.id.fName);
loadText = (Button) findViewById(R.id.loadText);


if (bundle != null) {
ctext = bundle.getStringArray("confirmed_text");
cname = bundle.getString("confirmed_name");


}

fileName.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
new dataPOJO();



}
});

}

最佳答案

首先,dataPOJO不应扩展Phone_Save 。什么都没有dataPOJO需要这样做取决于它是 Activity (至少根据您向我们展示的内容)。如果您想让该类将这些信息存储在一个地方,那没问题;否则只需将它们存储在 Phone_Save 中本身。现在你似乎试图同时做这两件事,这很令人困惑。

二、调用new dataPOJO()在 OnClickListener 中分配一个对象,然后丢弃它,因为它没有被分配给任何东西。它也是一个完全不同的对象,对此没有任何影响。

第三,那没有用main Android 上的方法,它永远不会被调用(除非你自己调用它,无论如何这都是没有意义的)。

我将使 dataPOJO 成为它自己的类,该类不扩展任何内容并摆脱无参数构造函数(或者保留它但删除其中的代码)。在你的Phone_SaveonCreate方法,你可以创建一个 dataPOJO 并卡在它上面。

public class DataPojo {
String fName;
String cName;
String[] cText;

public dataPOJO() {}

/* all the other stuff */
}

public class Phone_Save extends ActionBarActivity {
private DataPojo dataPojo;
// other members

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
dataPojo = new DataPojo();

Intent intent = getIntent();
dataPojo.setName(intent.getStringExtra("confirmed_name"));
dataPojo.setRemainder(intent.getStringExtra("confirmed_text"));

// other stuff...
}
}

关于java - 新 POJO 对象的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28132418/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com