public static int example = 10;
我正在尝试将字符串添加到文本文件中,但是当我添加字符串时,它会在文件中放入“null”而不是我的字符串。字符串是“listName”
我的值设置为字符串的类:
public class NewList {
private String listName;
public void newList() {
System.out.println("NEW LIST");
System.out.print("List Name: ");
@SuppressWarnings("resource")
Scanner scanner = new Scanner(System.in);
setListName(scanner.next());
System.out.println(listName);
ListsWriter listsWriterObject = new ListsWriter();
listsWriterObject.listsWriter();
}
public String getListName() {
return listName;
}
public void setListName(String listName) {
this.listName = listName;
}
将字符串添加到文本文件的类:
public class ListsWriter {
public void listsWriter() {
NewList newListObject = new NewList();
File lists = new File("lists.txt");
try{
PrintWriter pw = new PrintWriter(new FileWriter(lists, true));
pw.append(newListObject.getListName() + "\n");
pw.close();
}catch(IOException ex){
ex.printStackTrace();
}
}
}
答案 0 :(得分:1)
好!所以我修改了你可以使用它的代码:) NewList.java
public class NewList {
private String listName;
public void newList() {
System.out.println("NEW LIST");
System.out.print("List Name: ");
@SuppressWarnings("resource")
Scanner scanner = new Scanner(System.in);
listName = scanner.next();
System.out.println(listName);
ListsWriter listsWriterObject = new ListsWriter();
listsWriterObject.listsWriter(listName);
}
public static void main(String[] args) {
new NewList().newList();
}
}
ListsWriter.java
public class ListsWriter {
public void listsWriter(String listName) {
File lists = new File("lists.txt");
try{
PrintWriter pw = new PrintWriter(new FileWriter(lists, true));
pw.append(listName + "\n");
pw.close();
}catch(IOException ex){
ex.printStackTrace();
}
}
}
答案 1 :(得分:1)
查看代码执行的顺序。您从private String listName;
内容开始,并将名称保存在变量NewList
中。此变量属于您当前所在类NewList
的实例。请务必注意,如果您创建listName
的其他实例,则它们都将拥有自己的ListsWriter
个变量。
接下来,您创建newListObject.getListName()
并调用其方法。在那里,您尝试使用NewList newListObject = new NewList();
阅读列表名称,但之前使用的是NewList
。这将创建listName
的新实例。它有自己的null
变量,它与另一个实例的变量不同!因此它是ListsWriter
。
如果您需要其他实例的名称,则需要将值或对此实例的引用传递给ListsWriter
对象。
您可以使用String
的构造函数来执行此操作,该构造函数接受NewList
作为参数(或对listsWriter
对象的引用)。或者您将参数添加到方法public void listsWriter(String listName) {
。
例如:
include