当前位置: 首页 > 知识库问答 >
问题:

为什么variable.add(索引,元素)创建一个空错误?

余天宇
2023-03-14

我花了很多时间来解决这个问题,你可以从所有的打印稿中看到。所以我需要问一下。为什么blocks.add可以工作,但labels.add却出现错误null?

我的故障排除println返回“添加标签[1]:强度”,所以我知道值在里面。

void load() {       
    String path = "menus.inventorys.stats";
    System.out.println("setting variables");
    // now load stat details from config
    System.out.println("default name");
    String defaultName = statConfig.getDefaults().getString(path + ".name");
    System.out.println("done");
    System.out.println("defaultslots");
    int defaultSlots = statConfig.getDefaults().getInt(path + ".slots");
    System.out.println("done");
    System.out.println("mame");
    name = statConfig.getString(path + ".name", defaultName);
    System.out.println("done");
    System.out.println("slots");
    slots = statConfig.getInt(path + ".slots", defaultSlots);
    System.out.println("done");

    InventoryController inventory = new InventoryController();
    ArrayList<Material> blocks = new ArrayList<>();
    ArrayList<String> labels = new ArrayList<>();
    ArrayList<String> slots = new ArrayList<>();

    if (statConfig.isSet(path + "slot")) {
        System.out.println("path to slots exists");
    }

    System.out.println("beginning loop");
    for (String slot : statConfig.getConfigurationSection(path + ".slot").getKeys(false)) {
        System.out.println("iterating material");
        Material block = (Material) statConfig.get(path + ".slot." + slot + ".block");
        System.out.println("material found");
        System.out.println("iterating label");
        String label = statConfig.getString(path + ".slot." + slot + ".label");
        System.out.println("label found");
        System.out.println("adding block");
        blocks.add(block);
        System.out.println("done");
        int blockSize = blocks.size();
        System.out.println("adding labels[" + blockSize + "]: " + label);
        labels.add(blockSize, label);
        System.out.println("done");
        System.out.println("adding slot");
        slots.add(blocks.size(), label);  // remember this is seperate from the arraylist for the block ItemStacks we will need to call this seperately
        System.out.println("done");
    }

[16:17:08][服务器线程/信息]:done[16:17:08][服务器线程/信息]:添加html" target="_blank">标签[1]:Strength[16:17:08][服务器线程/信息]:done[16:17:08][服务器线程/信息]:添加slot[16:17:08][服务器线程/错误]:null org . buk kit . command . command异常:在org . buk kit . command . plugin command的插件rift v0.0.1中执行命令' rift '时出现未处理的异常。craft server . dispatch command(craft server . Java:646)~[Spigot-1.8 _ server . jar:git-Spigot-DBE 012 b-61ef 214]at net . minecraft . server . v1 _ 8 _ R2。net.minecraft.server.v1_8_R2的player connection . handle command(player connection . Java:1133)[Spigot-1.8 _ server . jar:git-Spigot-DBE 012 b-61ef 214]。net.minecraft.server.v1_8_R2的player connection . a(player connection . Java:968)[Spigot-1.8 _ server . jar:git-Spigot-DBE 012 b-61ef 214]。packet playin chat . a(packet playin chat . Java:45)[Spigot-1.8 _ server . jar:git-Spigot-DBE 012 b-61ef 214]at net . minecraft . server . v1 _ 8 _ R2。packet playin chat . a(packet playin chat . Java:1)[Spigot-1.8 _ server . jar:git-Spigot-DBE 012 b-61ef 214]at net . minecraft . server . v1 _ 8 _ R2。PlayerConnectionUtils $ 1 . run(Source file:13)[Spigot-1.8 _ server . jar:git-Spigot-DBE 012 b-61ef 214]at Java . util . concurrent . executors $ runnable adapter . call(未知来源)[?:1 . 8 . 0 _ 51]at Java . util . concurrent . future task . run(未知来源)[?:1 . 8 . 0 _ 51]at net . minecraft . server . v1 _ 8 _ R2。net.minecraft.server.v1_8_R2的SystemUtils.a(源文件:60)[Spigot-1.8 _ server . jar:git-Spigot-DBE 012 b-61ef 214]。minecraft server . A(minecraft server . Java:710)[Spigot-1.8 _ server . jar:git-Spigot-DBE 012 b-61ef 214]at net . minecraft . server . v1 _ 8 _ R2。位于net.minecraft.server.v1_8_R2的DedicatedServer . A(DedicatedServer . Java:368)[Spigot-1.8 _ server . jar:git-Spigot-DBE 012 b-61ef 214]。minecraft server . z(minecraft server . Java:651)[Spigot-1.8 _ server . jar:git-Spigot-DBE 012 b-61ef 214]at net . minecraft . server . v1 _ 8 _ R2。minecraft server . run(minecraft server . Java:554)[Spigot-1.8 _ server . jar:git-Spigot-DBE 012 b-61ef 214]at Java . lang . thread . run(未知来源)[?:1.8.0_51]原因:Java . lang . indexoutofboundsexception:Index:1,Size:0 at Java . util . ArrayList . rangecheckforadd(未知来源)~[?:1.8.0_51]在java.util.ArrayList.add(未知来源)~[?:1 . 8 . 0 _ 51]at com . au . msh craft . rift . stat model . load(stat controller . Java:201)~[?:?]at com . au . msh craft . rift . stat controller . open(stat controller . Java:52)~[?:?]at com . au . msh craft . rift . rift . stat view(rift . Java:100)~[?:?]at com . au . msh craft . rift . rift . on command(rift . Java:81)~[?:?]at org . buk kit . command . plugincommand . execute(plugincommand . Java:44)~[Spigot-1.8 _ server . jar:git-Spigot-DBE 012 b-61ef 214]...还有15个

共有1个答案

羊煜
2023-03-14

您收到错误是因为您没有初始化标签ArrayList中的元素。如果您从index0开始添加,它将起作用,但由于index1尚未为您初始化,它将导致indexoutofb的异常。

 类似资料:
  • 问题内容: 我想创建一个2d numpy数组,其中每个元素都是其索引的元组。 范例(4x5): 我将创建具有以下列表理解的python : 是否有更快的方法可以达到相同的效果,也许使用numpy方法? 问题答案: 这是一个基于初始化的方法- 样品运行- 到目前为止针对网格化和更大尺寸发布的所有方法的运行时测试-

  • 问题内容: 我正在使用官方elasticsearch npm。在我的节点应用程序中,我正在使用该客户端创建索引,如下所示 我需要为上述索引放入映射,因此,我必须先创建一个空索引(无数据索引),然后必须执行放置映射,然后将数据放入索引。 因此,我必须创建一个空索引,但是在正式的Elasticsearch客户端中,上述方法(create)是用“ ”方法编写的,因此它需要一个主体。 为此,我必须如上所述

  • 我不明白为什么这个方法不起作用。它会编译,但会引发运行时错误。

  • CreateIndexes 根据struct中的tag来创建索引 CreateUniques 根据struct中的tag来创建唯一索引

  • 问题内容: 我想创建一个包含ArrayList 元素的数组。 我试过了 但这似乎不起作用。 问题答案: 您不能创建通用类型的数组。 相反,您可以创建一个。

  • 我正在阅读Al Sweigart的书《自动化无聊的东西》,我对我遇到的索引错误感到不知所措。我正在使用PyPDF2尝试打开一个加密的PDF文档。我知道这本书是2015年的,所以我去了文档,看看我是否遗漏了什么,一切似乎都一样,至少据我所知。所以我不确定这里出了什么问题。 给予: 在问我的问题之前,我在谷歌上搜索了一下,找到了这个带有“建议修复”的链接。然而,我对这一点很陌生,想看看解决方法是什么。