Всю жизнь работал с C++, но недавно решил немного поиграть с Java. Я начал с изучения библиотеки сериалов / желаний Джексона. Базовый пример выглядит так
ObjectMapper objectMapper = new ObjectMapper();
Car car = new Car("yellow", "renault");
objectMapper.writeValue(new File("target/car.json"), car);
Выглядит это довольно просто и здесь не должно возникнуть никаких проблем. Моя IDE - это IntelliJ, поэтому перед запуском кода я использовал Maven для получения следующих библиотек.
com.fasterxml.jackson.core:jackson-annotations:2.9.4
com.fasterxml.jackson.core:jackson-core:2.9.4
com.fasterxml.jackson.core:jackson-databind:2.9.4
Учитывая, что где-то выше реализован класс Car, теперь он должен работать. Однако, когда я пытаюсь собрать код, я получаю сообщение об ошибке, что компилятор не может разрешить символ writeValue(). Автозаполнение сталкивается с той же проблемой. Мое первое предположение состоит в том, что не все внешние библиотеки исправлены, но когда я открываю исходный код для ObjectMapper в IDE, я ясно вижу метод writeValue(). Более того, если я попытаюсь вызвать этот метод сразу после того, как создающий объект с оператором автозаполнения new сможет его распознать. Если я удалю строку с
Код вызова writeValue() успешно компилируется.
С точки зрения C++ это похоже на безумие, поэтому, пожалуйста, подскажите, почему это происходит и как это можно решить?
Похоже, у меня нет файла pom.xml. Я только что создал новый проект и добавил библиотеки с IntelliJ ProjectStructure->Libraries->NewProjectLibrary(from Maven).
Это означает, что это неправильно созданный проект Maven. В Java общее правило, что все необходимые jar-файлы должны находиться на пути к классам. Сначала вы должны прочитать об этом и о том, как правильно создать проект в своей среде IDE с Maven или без него. Но я бы порекомендовал использовать Maven, он ускоряет разработку Java. Это не проблема с библиотекой Jackson.
См. jetbrains.com/help/idea/working-with-module-dependencies.htm l.
Создание проекта maven с файлом pom.xml решило проблему. Спасибо! Я также постараюсь исправить свой первоначальный проект с помощью предоставленного руководства.




Не могли бы вы также показать свой файл
pom.xml? Не могли бы вы попробовать собрать его в консоли / терминале с помощьюmvn clean installв папке, где находится файлpom.xml?