方法:
public Auction getAuction(UUID id) {
System.out.println("count: " + auctions.size());
if (!doesAuctionExist(id))
return null;
UUID owner = UUID.fromString(Main.getAuctionsFile().getConfiguration().getString("auctions."+id.toString()+".owner"));
Bukkit.getPlayer("NoneTaken").sendMessage("owner "+owner);
long price = Main.getAuctionsFile().getConfiguration().getLong("auctions." + id.toString() + ".price");
boolean useTokens = Main.getAuctionsFile().getConfiguration().getBoolean("auctions." + id.toString() + ".useTokens");
long timeCreated = Main.getAuctionsFile().getConfiguration().getLong("auctions." + id.toString() + ".timeCreated");
ItemStack item = (ItemStack) Main.getAuctionsFile().getConfiguration().get("auctions." + id.toString() + ".item");
Bukkit.getPlayer("NoneTaken").sendMessage("null: " + (owner == null));
return new Auction(
owner,
item,
price,
useTokens,
id,
timeCreated);
}
构造函数:
public Auction(UUID owner, ItemStack item, long price, boolean useTokens, UUID identifier, long timeCreated) {
this.owner = owner;
this.item = item;
this.price = price;
this.useTokens = useTokens;
this.identifier = identifier;
this.timeCreated = timeCreated;
Main.getAuctionManager().registerAuction(this);
}
错误:
18.10 17:12:12 [Server] ERROR Error occurred while enabling BanditAH v1.0 (Is it up to date?)
18.10 17:12:12 [Server] INFO java.lang.NullPointerException
18.10 17:12:12 [Server] INFO at me.nonetaken.banditah.managers.Auction.<init>(Auction.java:28) ~[?:?]
18.10 17:12:12 [Server] INFO at me.nonetaken.banditah.managers.AuctionManager.getAuction(AuctionManager.java:86) ~[?:?]
18.10 17:12:12 [Server] INFO at me.nonetaken.banditah.managers.AuctionManager.<init>(AuctionManager.java:28) ~[?:?]
AuctionManager.java中的第86行是第一段代码中构造函数中的owner,
行。
发送“ null:true / false”的消息始终返回false,因此该对象不能为null,但是在该行中的错误中引发了NPE。
我们将不胜感激:)
答案 0 :(得分:0)
请检查此行
Name StudentID Education
0 tom 3 college
1 nick 5 grad-school
2 juli 6 grad-school
3 jack 10 NaN
Main.getAuctionManager()是静态方法吗?如果不是,则getAuctionManager()的Main或返回值可能为null
如果是,则getAuctionManager()的返回值可能为空
请共享registerAuction(),它可能会抛出NPE
答案 1 :(得分:0)
发现了问题。
结果发现调用registerAuction()
的构造函数是问题所在。然后,它调用saveAuction()
,该文件覆盖了试图读取拍卖内容的位置中的文件。谢谢你Ajinkyad。