【发布时间】:2018-01-05 11:02:46
【问题描述】:
我有 3 个不同的课程。我必须通过使用BufferedReader 但使用toString 方法来获取用户输入。以下是我的User2(其中一类)中的代码。
如何在主函数中调用用户在toString 中输入的所有内容?如果我必须使用对象,怎么办?
//in User2 class
@Override
public String toString() {
try {
//getting input using BufferedReader
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
System.out.print("Enter customer name: ");
this.name = br.readLine();
System.out.print("Enter customer address: ");
this.address = br.readLine();
System.out.print("Enter customer contact no: ");
this.hp = br.readLine();
} catch (IOException e) {
return "";
}
return "" ;
}
我只知道通过使用将所有内容打印到字符串中
System.out.println(u2.toString());
提前致谢。
【问题讨论】:
-
在
toString()方法中从标准输入读取是一个非常糟糕的主意。这甚至不是一个有用的toString()方法:它总是返回""。将此逻辑放在不同的方法中。 -
所以有什么解决办法吗? @AndyTurner
-
"把这个逻辑放在不同的方法中"。
-
toString 理想情况下应该生成一个代表对象的字符串。确实不应该从系统中读取。
-
“我必须通过使用 BufferedReader 而使用 toString 方法来获取用户输入” 为什么您必须这样做?这是作业吗?如果是这样,我认为您可能误解了说明。