您知道使用getter是为了限制访问。问题是我有一个缓冲的编写器在另一个类中使用一些信息。因此,使用getter我已经获得了这些信息并使用bufferedWriter写入文件。
当我尝试在与bufferedWriter相同的类中使用某些信息时,会出现问题。它没有写出这些细节。在代码中没有显示任何错误,只是不写它。如果数据与缓冲编写器属于同一类,我认为不需要使用getter访问它?虽然值存储在另一种方法中。解释一下 谢谢你很多
bufWrite.write("Your Character Class:" + character_Class + "\n");
bufWrite.write("Your Character Level:" + level + "\n");
此处的角色类和级别来自1个名为character的类。为了访问这些信息,我使用了getter(因为缓冲的writer在另一个类中。基本上我有3个类。一个中的字符细节,我使用bufferedWriter,它在不同的类中将这些细节存储到文件中。) 这些细节完全写入文件。
for(Object o:skillInfo){
bufWrite.write("" + o + "- Rank(skill Points) :" + rank);
}
我正在尝试使用这个foreach循环在链表中编写内容。此链接列表与缓冲的编写器语句位于同一类中。但是,当其他细节(如上所列)被写入时,这不会被写入。唯一的区别是这些细节是使用getter,因为它们与bufferedWriter不在同一个类中,而链表与bufferedWriter相同,因此不使用getter。
我希望这很清楚
**更新
另请注意,character.Level和rank是用户输入的值。
答案 0 :(得分:0)
要回答你的问题,BufferedWriter本身不需要'getter'。
如果您的BufferedWriter没有写入数据,那么问题可能就是您实际编写数据的方式。您也可能想要在编写完数据后检查是否正在调用.close()
。
另一个问题可能是您的数据是如何从get-er返回的。
你的问题很模糊,所以任何答案都只能是猜测。我建议阅读如何提出一个好问题,以便人们可以提供更好的答案。
https://stackoverflow.com/help/how-to-ask
https://stackoverflow.com/help/mcve
*编辑:
感谢您更新您的问题。
如果要写出character_Class
的详细信息,则需要调用要从类中获取的特定信息的getter。
bufWrite.write("Your Character Class:" + character_Class + "\n");
不抛出异常或崩溃的原因是因为java将类强制转换为String。
代码行:
"Your Character Class:" + character_Class
与以下相同:
"Your Character Class:" + character_Class.toString()
来自skillInfo的对象也是如此:
bufWrite.write("" + o.toString() + "- Rank(skill Points) :" + rank);
基本上,如果连接'+'一个String和一个对象,它会调用该对象上的toString()。如果连接String和基本类型,它只是首先将它们转换为字符串。