IDE не может разрешить метод writeValue () для Jackson ObjectMapper

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

Michał Ziober 03.06.2018 22:40

Похоже, у меня нет файла pom.xml. Я только что создал новый проект и добавил библиотеки с IntelliJ ProjectStructure->Libraries->NewProjectLibrary(from Maven).

Oleksandr V 03.06.2018 22:53

Это означает, что это неправильно созданный проект Maven. В Java общее правило, что все необходимые jar-файлы должны находиться на пути к классам. Сначала вы должны прочитать об этом и о том, как правильно создать проект в своей среде IDE с Maven или без него. Но я бы порекомендовал использовать Maven, он ускоряет разработку Java. Это не проблема с библиотекой Jackson.

Michał Ziober 03.06.2018 22:57

Создание проекта maven с файлом pom.xml решило проблему. Спасибо! Я также постараюсь исправить свой первоначальный проект с помощью предоставленного руководства.

Oleksandr V 03.06.2018 23:30
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
В компьютерном программировании биты играют важнейшую роль в представлении и манипулировании данными на двоичном уровне. Побитовые операции...
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Приходилось ли вам сталкиваться с требованиями, в которых вас могли попросить поднять тревогу или выдать ошибку, когда метод Java занимает больше...
Полный курс Java для разработчиков веб-сайтов и приложений
Полный курс Java для разработчиков веб-сайтов и приложений
Получите сертификат Java Web и Application Developer, используя наш курс.
0
5
449
0

Другие вопросы по теме