gpt4 book ai didi

java - 当对象不为 null 时构造函数抛出 NPE [JAVA]

转载 作者:行者123 更新时间:2023-12-01 22:50:48 25 4
gpt4 key购买 nike

方法:

    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/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com