我正在用Java开发一些代码,但是遇到了NPE的问题。 当我尝试在另一个类中使用方法时,就会发生这种情况。 这是我的代码:
public class MyClass{
private Attributes attr = null;
public static void main(String [ ] args) throws ParseException, SAXException, IOException, ParserConfigurationException {
MyClass main = new MyClass();
Options options = main.parseCommandLine();
CommandLineParser parser = new BasicParser();
CommandLine cl = parser.parse(options, args);
main.configureAttributes(main);
}
private void configureAttributes(MyClass main, CommandLine cl) throws ParserConfigurationException, SAXException, IOException {
String[] attributes = cl.getOptionValues("a");
Integer tag = null;
for(int i = 0; i < attributes.length ; i++) {
String[] parts = attributes[i].split("=");
String tagName = parts[0];
String value = parts[1];
tag = Integer.parseInt(tagName,16);
this.attr.setString(tag, DICT.vrOf(tag), value);
}
}
}
但是我在最后一行得到了NPE:this.attr.setString(tag,DICT.vrOf(tag),value);
我有所有合适的进口货。这是一个Maven项目,因此我也将依赖项添加到了pom.xml中。
非常感谢您的帮助!
V。
答案 0 :(得分:1)
好像您忘了初始化attr
字段。根据您的消息来源,这里仅是此字段的一项分配:private Attributes attr = null;
。因此,我认为,您需要在代码中的某处初始化字段。
答案 1 :(得分:0)
您要在哪里初始化Attributes attr
?
您需要使用Attributes attr = new Attributes();
之类的东西,因为正确地知道您的变量确实不包含任何内容-null