java - 在用户输入中获取 LocalDateTime
问题描述
我正在研究一种用户可以插入交易详细信息的方法。在其中一个字段中,有一个事务时间,它是使用 java localdatetime 自动设置的。但是,在运行程序时,它给了我这个错误:
Exception in thread "main" java.lang.NullPointerException: temporal
at java.util.Objects.requireNonNull(Objects.java:228)
at java.time.format.DateTimeFormatter.formatTo(DateTimeFormatter.java:1741)
at java.time.format.DateTimeFormatter.format(DateTimeFormatter.java:1720)
at project.TradeManager.saveToFile(TradeManager.java:59)
at project.MainApp.addTrade(MainApp.java:649)
at project.MainApp.main(MainApp.java:138)
主应用
public static void addTrade() {
AnimalManager aMgr = new AnimalManager();
aMgr.loadFromFile("AnimalDetails.txt");
TradeManager tMgr = new TradeManager();
tMgr.loadFromFile("TradeDetails.txt", aMgr);
String tradeID = "TRD" + ++idCount;
Scanner an = new Scanner(System.in); //Scanner for user input
TradeRecord tr = new TradeRecord();
//Insert trade informations
System.out.println("Trade ID (automatically set)");
tr.setID(tradeID);
System.out.println("Animal ID (Must be recorded already): ");
tr.setAnimal(aMgr.getAnimalById(an.next()));
System.out.println("Seller: ");
tr.setSeller(an.next());
System.out.println("Buyer: ");
tr.setBuyer(an.next());
System.out.println("Transaction Time (automatically set)");
LocalDateTime.now();
System.out.println("Way of trade: ");
tr.setwayOfTransaction(an.next());
boolean added = tMgr.addTrade(tr);
if(added) {
System.out.println("Added successfully.");
}else {
System.out.println("Duplicate. Fail");
}
//Save to file
aMgr.saveToFile("AnimalDetails.txt");
tMgr.saveToFile("TradeDetails.txt");
}
贸易经理
public void saveToFile(String filename) {
StringBuilder output = new StringBuilder();
for (TradeRecord tr: tradeList) {
output.append(tr.getID()).append(",").append(tr.getAnimal().getID()).append(",")
.append(tr.getSeller()).append(",").append(tr.getBuyer())
.append(",").append(DTF.format(tr.getTransactionTime())).append(tr.getwayOfTransaction()).append(",").append("\r\n");
}
try (FileWriter fw = new FileWriter(new File(filename))) {
fw.write(output.toString());
} catch (IOException e) {
System.out.println("Trades cannot be saved: " + e);
}
}
解决方案
推荐阅读
- scala - 有没有办法在Scala中实现一个带有泛型类型的可选参数的函数?
- c++ - 以数值稳健的方式测试三个点的共线性
- c# - 通过合约实现接口
- python - 如何为场景矩形设置动画?
- javascript - 如何在 HERE 地图的特定位置搜索图标(domMarker)?
- javascript - 反应中事件侦听器内的异步 API 调用处理程序
- api - 如何处理“应用程序暂时无法使用您的 Google 帐户登录”的障碍
- java - 使用 Spring 安全性时 Webjar 脚本不起作用
- python - 在图像中查找某个像素值
- javascript - SyntaxError:意外的令牌'?