gpt4 book ai didi

java - ListResourceBundle 和 MissingResourceException

转载 作者:行者123 更新时间:2023-11-30 11:44:29 25 4
gpt4 key购买 nike

我正在从事一个涉及加载 ResourceBundle 的项目。更明确地说,我创建了一个扩展 ListResourceBundle 的类。该类称为 Resources.java。它编译一切正常,但每次我尝试加载类时 MissingResourceException 都会弹出:

我所有的源文件都在第 31 章包中。在字符串中使用或不使用“chapter31”进行此调用时,总是会导致 MissingResourceException。我的 IDE 是 Eclipse。这两天我一直在研究这个问题。我什至尝试更改 Eclipse 的版本。我已经筋疲力尽了。在 Eclipse 中我该怎么做才能确保 getBundle() 方法可以看到该类。我不知道它怎么会错过它。它在同一个包里!请指教。

阿丽卡斯

package chapter31;

import java.applet.Applet;
import java.applet.AudioClip;
import java.util.ListResourceBundle;
import java.util.ResourceBundle;

import javax.swing.ImageIcon;

public class Resources extends ListResourceBundle {
Object contents[][];

public Resources() {
AudioClip clip = Applet.newAudioClip(getClass().getResource("/E31_10/audio/us.mid"));
ImageIcon image = new ImageIcon(getClass().getResource("/E31_10/image/us.gif"));
contents = new Object[3][2];
contents[0] = new Object[] {"clip", clip};
contents[1] = new Object[] {"icon", image};
contents[3] = new Object[] {"delay", new Integer(68000)};
}

protected Object[][] getContents() {
return contents;
}

public static void main(String[] args) {
ResourceBundle res = ResourceBundle.getBundle("chapter31.Resources");
}
}

最佳答案

MissingResourceException 在这里具有误导性。您的问题可能是由另外两个问题引起的:

  1. 找不到下面两行的资源:

    AudioClip clip = Applet.newAudioClip(getClass().getResource("/E31_10/audio/us.mid")); ImageIcon image = new ImageIcon(getClass().getResource("/E31_10/image/us.gif"));

  2. 如果不是第一个问题,那就是第二个问题:

    您有一个错误的数组索引 contents[3],这将导致 ArrayIndexOutOfBoundsException,这也会导致抛出误导性的 MissingResourceException。如果您可以在异常堆栈跟踪中找到此异常,那么您的问题就在这里。改成contents[2]即可解决。

注意:您看到 MissingResourceException 的原因最终是由于上述问题导致类加载器无法创建 Resources 类的实例。如果您将 contents 数组初始化代码放在一个单独的方法中而不是构造函数中,您可能不会在对象初始化阶段获得此异常。当然,当您尝试调用 getObject 方法时,稍后会弹出其他异常。

关于java - ListResourceBundle 和 MissingResourceException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10777554/

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