方法:
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。
感谢任何帮助:)
最佳答案
请检查此行
Main.getAuctionManager().registerAuction(this);
Main.getAuctionManager() 是静态方法吗?如果不是,则 Main 或 getAuctionManager() 的返回值可能为 null
如果是,则 getAuctionManager() 的返回值可能为 null
请分享registerAuction(),这可能会引发NPE
关于java - 当对象不为 null 时构造函数抛出 NPE [JAVA],我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58458302/