Я разрабатываю код на 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.
Большое спасибо за вашу помощь !
В.
Я, конечно, глупый! Спасибо за исправление ответа!




Похоже, вы забыли инициализировать поле attr. Согласно вашему источнику, здесь только одно присвоение этому полю: private Attributes attr = null;. Итак, я думаю, вам нужно инициализировать свое поле где-нибудь в вашем коде.
А где вы инициализируете Attributes attr?
Вам нужно что-то вроде Attributes attr = new Attributes();, потому что вы точно знаете, что ваша переменная ничего не содержит - null
Вопрос - это не ответ!
@hotfix - на самом деле вопрос указывает на проблему: забыть инициализировать переменную attr.
вы не можете вызвать метод с нулевым значением, а
this.attrимеет значение NULL. вы должны инициализировать его перед вызовомsetString