Задать вопрос
  • GSON - Как объявить переменные для хранения названий из сложного JSON?

    azerphoenix
    @azerphoenix Куратор тега Java
    Java Software Engineer
    Есть такой сайт - www.jsonschema2pojo.org
    На сайте вы также найдете maven плагин для быстрой конвертации
    Результат

    -----------------------------------com.example.Address.java-----------------------------------
    
    package com.example;
    
    import com.google.gson.annotations.Expose;
    import com.google.gson.annotations.SerializedName;
    
    public class Address {
    
    @SerializedName("street")
    @Expose
    public String street;
    @SerializedName("suite")
    @Expose
    public String suite;
    @SerializedName("city")
    @Expose
    public String city;
    @SerializedName("zipcode")
    @Expose
    public String zipcode;
    @SerializedName("geo")
    @Expose
    public Geo geo;
    
    }
    -----------------------------------com.example.Company.java-----------------------------------
    
    package com.example;
    
    import com.google.gson.annotations.Expose;
    import com.google.gson.annotations.SerializedName;
    
    public class Company {
    
    @SerializedName("name")
    @Expose
    public String name;
    @SerializedName("catchPhrase")
    @Expose
    public String catchPhrase;
    @SerializedName("bs")
    @Expose
    public String bs;
    
    }
    -----------------------------------com.example.Example.java-----------------------------------
    
    package com.example;
    
    import com.google.gson.annotations.Expose;
    import com.google.gson.annotations.SerializedName;
    
    public class Example {
    
    @SerializedName("id")
    @Expose
    public int id;
    @SerializedName("name")
    @Expose
    public String name;
    @SerializedName("username")
    @Expose
    public String username;
    @SerializedName("email")
    @Expose
    public String email;
    @SerializedName("address")
    @Expose
    public Address address;
    @SerializedName("phone")
    @Expose
    public String phone;
    @SerializedName("website")
    @Expose
    public String website;
    @SerializedName("company")
    @Expose
    public Company company;
    
    }
    -----------------------------------com.example.Geo.java-----------------------------------
    
    package com.example;
    
    import com.google.gson.annotations.Expose;
    import com.google.gson.annotations.SerializedName;
    
    public class Geo {
    
    @SerializedName("lat")
    @Expose
    public String lat;
    @SerializedName("lng")
    @Expose
    public String lng;
    
    }
    Ответ написан
    1 комментарий
  • Как передать параметр из properties в Spring Boot в js файл?

    azerphoenix
    @azerphoenix Автор вопроса, куратор тега Java
    Java Software Engineer
    Отвечу на свой вопрос.
    Если это классическое MVC приложение и например, используется шаблонизатор thymeleaf, то можно получить доступ к конфигам yml || properties следующими способами:

    1)
    ${@environment.getProperty('css.specific.name')}

    2) Либо используя аннотацию @ConfigurationProperties
    а в html использовать:
    <span th:text="@foo.getBar()"></span>

    Полезная ссылка по теме:
    https://stackoverflow.com/questions/56102116/acces...

    P.S. Использование Controller || ControllerAdvice для подобных целей не приветствуется.

    Ну а если у вас REST приложение, то это настраивается на клиентской стороне внутри js фреймворка.
    Ответ написан
    Комментировать
  • Как сделать get request java?

    azerphoenix
    @azerphoenix Куратор тега Java
    Java Software Engineer
    Ответ на ваш вопрос легко ищется поисковиком.
    Вот, пример:
    https://www.baeldung.com/java-http-request
    Вот, примерный код. Только обработайте исключения и подправьте под себя
    public class Main {
    
    
    	public static void main(String[] args) {
    		final String urlAdress = "http://example.com"; // url куда нужно совершить запрос
    		URL url = new URL(urlAdress);
    		HttpURLConnection con = (HttpURLConnection) url.openConnection();
    		con.setRequestMethod("GET");
    		int status = con.getResponseCode(); // совершаем запрос
    		BufferedReader in = new BufferedReader(new InputStreamReader(con.getInputStream())); // читаем ответ
    		String inputLine;
    		StringBuffer content = new StringBuffer();
    		while ((inputLine = in.readLine()) != null) {
    		    content.append(inputLine);
    		}
    		in.close();
    		con.disconnect();
    	}
    
    }
    Ответ написан
  • Есть ли интерактивный курс по Vue.js?

    azerphoenix
    @azerphoenix
    Java Software Engineer
    Добрый день!
    Подобные курсы можно найти на Udemy. Там бывают и интерактивные курсы встречаются.
    Я купил недавно курс по VueJS на Udemy на английском, но там он не интерактивный, но с нуля подробно показывается как с ним работать. Также есть информация по axios, vuex и др.
    Ответ написан
  • Зачем нужен Queue?

    azerphoenix
    @azerphoenix Куратор тега Java
    Java Software Engineer
    Добрый день!
    Для начала было бы неплохо разобраться в таких терминах, как: FIFO & LIFO
    FIFO - first in - first out. "Первым пришел - первым ушел". Это наглядный пример очереди. Обслужен будет тот клиент, который стоит первым в очереди.
    LIFO - last in - first out. "Последним пришел - первым ушел".Это наглядный пример работы стека. Т.е. это обратный принцип FIFO. Первым обслуживается тот клиент, который стоит в конце очереди (вверху стека).
    Теперь, зная что такое FIFO & LIFO стоит отметить, что Queue (с англ. очередь) - это интерфейс, который основан на принципе FiFO.
    Выбор реализации jcf зависит от вашей цели, так как каждая из коллекций выполняет ту или иную операцию за разное время. Это отображено в таблице ниже:
    603e3b8cc408a641092521.png
    Полезная ссылка по теме:
    https://codenza.app/java-collections/
    https://www.examclouds.com/ru/java/java-core-russi...
    Ответ написан
    Комментировать
  • Какой курс по архитекторству лучше пройти?

    azerphoenix
    @azerphoenix Куратор тега Java
    Java Software Engineer
    Добрый день!
    Как мне кажется, у разработчика, которого назначили архитектором не должно быть вопросов касаемых становления архитектором, так как получение этой должности уже подразумевает под собой наличие необходимых навыков. Но тем не менее вопрос был задан, а значит, скину статейку, которая может быть вам полезна:
    https://medium.com/javarevisited/top-5-courses-to-...
    Тут указаны курсы на coursera, которые вам могут быть полезны.
    Ну а если найдете полезные материалы по вашему вопросу, то буду рад их увидеть) Может, понадобится когда-то)
    Ответ написан
    Комментировать
  • Как решить проблему с "Unable to create converter for class"?

    azerphoenix
    @azerphoenix Куратор тега Java
    Java Software Engineer
    Добрый день!
    Вот, аналогичная проблема, на которую уже дали ответ:
    https://stackoverflow.com/questions/32367469/unabl...
    Ответ написан
    9 комментариев
  • Как настроить корзину Bootstrap 5 через jstl?

    azerphoenix
    @azerphoenix Куратор тега Java
    Java Software Engineer
    У вас есть ошибки в js коде и как мне кажется было бы лучше этот код переписать под себя, нежели использовать готовый.

    <c:forEach var="product" items="${listProducts}">
        var product_price =
        ${product.price}
        var product_count =
        ${product.count}
        </c:forEach>

    Тут по факту происходит следующее. Вы итерируете по списку listProducts, а затем создаете 2 переменные product_price и product_count. Притом в каждой итерации меняете значение этой переменной на соответствующий элемент в цикле. Т.е. значения переменных будут равны значению конечного элемента.
    + будет лучше, если добавление и удаление товаров будет происходить аяксом
    Ответ написан
  • Как решить эту задачку?

    azerphoenix
    @azerphoenix Куратор тега Java
    Java Software Engineer
    Добрый день!
    Так как это домашняя работа, то вместо написания кода я предоставлю вам цепочку событий. А код уже напишите сами.
    Итак, начали вы работу правильно использовав класс Scanner. Затем вы получаете 3 переменных math, history & geometry.
    Обратите, что согласно условию задачи значение типа переменной int указано в минутах.
    Т.е. 35 минут, 40 минут и 39 минут. (35 )
    Соответственно, вам сперва нужно просуммировать количество времени затраченное на домашнюю работу.
    Т.е. int result = math + history + geometry Так вы получите общее затраченное время.
    Затем вас просят перевести минуты в часы.
    1 час = 60 минут. Соотвественно, получившийся результат разделить на 60 и получить количество часов, а затем разделить по модулю и получить кол-во минут
    Ответ написан
  • Как решить javax.persistence.EntityExistsException в Hibernate?

    azerphoenix
    @azerphoenix Куратор тега Java
    Java Software Engineer
    LikeKey,
    очень полезные ресурсы по каскадам
    https://www.baeldung.com/jpa-cascade-types
    https://vladmihalcea.com/a-beginners-guide-to-jpa-...
    Ответ написан
    Комментировать
  • Есть какой либо плагин опроса с выгрузкой в excel?

    azerphoenix
    @azerphoenix
    Java Software Engineer
    Добрый день.
    Да, есть. Можно взять например, ACF и создать форму. А далее при помощи плагина WP All Export экспортировать данные в xlsx или csv
    Ответ написан
    3 комментария
  • Как выучить java?

    azerphoenix
    @azerphoenix Куратор тега Java
    Java Software Engineer
    Добрый день!
    Возможно ли самостоятельно освоить профессию?

    Да, возможно.

    По своему опыту скажу, что можно обойтись и без прохождения курсов. Плюс курсов заключается в том, что более опытный разработчик обратит ваше внимание на то, на что возможно, вы не обратите внимание и не уделите должного времени.

    Вы отметили, что хотите стать андроид разработчиком, но для этого вам скорее нужно изучить язык Kotlin, а не Java. Но настоятельно рекомендуется знание Java тоже.
    Так что вы можете сразу начать изучение языка Kotlin, а затем уже Android API или же вы можете начать изучение с Java, затем переключиться на Kotlin и изучить Android.

    Отмечу, что знаний Java (или Kotlin) для разработки на андроид недостаточно. Например, вам нужно изучить основы работы с SQL для запросов в БД. Нужно также уделить время на базовые вещи, например, принципы ООП, паттерны проектирования (GRASP, GoF) и алгоритмы.

    В идеале можно найти ментора, который будет контролировать ваш процесс обучения, т.е. по факту это не преподаватель, а просто консультант. Это нужно, чтобы некто делал код ревью и указывал на ваши ошибки. Есть телеграм каналы, где можно найти добровольцев на эту роль, а можно найти на платной основе.

    Также немаловажную роль играет знание английского языка на уровне чтения технической документации. Так что скачивайте приложения (Cake, Lingvo и возможно более лучшие) и улучшайте свой английский.

    Что касается изучения Java, то рекомендую начать с книг.
    Например,
    Г. Шилдт - Полное руководство по Java (можно начать с этой книги)
    Б. Эккель - Философия Java (лучше до него прочитать что-то попроще)

    Из видеоканалов могу рекомедовать следующие:
    Java
    Android
    Android_2
    Можете глянуть на курсы на сайте Udemy. Они относительно дешевые, в среднем - (от 10 у.е до 20 у.е.). Встречаются довольно хорошие курсы, особенно на английском.

    Проверить свои скиллы можно на сайтах:
    HackerRank
    LeetCode

    Хорошие статьи встречаются на Хабр и JavaRush. Для начала этих знаний должно быть достаточно.
    Ответ написан
    Комментировать
  • Верно ли я указал наследование в Java проекте?

    azerphoenix
    @azerphoenix Куратор тега Java
    Java Software Engineer
    Не верно.
    Легче понять вашу ошибку, если проговорить словами код написанный вами.
    Вот, ваш код:
    public class University{}
    public class Faculty extends University {}
    public class Group extends Faculty {}
    public class Student extends Group {}

    Итак, вы говорите, что есть некий Университет
    Факультет РАСШИРЯЕТ Университет. Уже нестыковка. Ведь, в Университете ИМЕЮТСЯ Факультеты. Далее вы говорите, что Группа расширяет Факультет. Что тоже нелогично, ибо каждый факультет ВКЛЮЧАЕТ в себя группы.
    Дальше вы говорите, что Студент расширяет класс Группы. Тоже ведь, нелогично, так как каждая группа содержит в себе некоторое количество студентов.

    Более корректным будет следующая реализация:
    public class University {
    private List<Faculty> faculties;
    }
    public class Faculty{
    private List<Group> groups;
    }
    public class Group{
    private List<Student> students;
    }
    public class Student {}

    Притом вместо List можно использовать Set, так как каждый факультет уникален, также как и группа и студенты.
    Ответ написан
    1 комментарий
  • Что значит метод Payload из javax.validation.Payload?

    azerphoenix
    @azerphoenix Куратор тега Java
    Java Software Engineer
    Добрый день!
    Это по сути тоже сужает действие, но позволяет применить к кастомным Constraint'ам
    https://docs.jboss.org/hibernate/validator/4.1/ref...
    6031262181841223775751.png
    https://beanvalidation.org/1.1/spec/
    Payloads are typically used by validation clients to associate some metadata information with a given constraint declaration. Payloads are typically non-portable. Describing payloads as interface extensions as opposed to a string-based approach allows an easier and more type-safe approach.
    Ответ написан
    Комментировать
  • Есть ли какой-нибудь готовый шаблон или что-то вроде Google Forms?

    azerphoenix
    @azerphoenix
    Java Software Engineer
    Можете взять плагин ACF (acf form). Или плагин CF7, но надо дополнить его другим плагином, который хранить данные из формы в БД. Это самые простые решения
    Ответ написан
    Комментировать
  • Насколько актуален LibGDX?

    azerphoenix
    @azerphoenix Куратор тега Java
    Java Software Engineer
    Если вы хотите профессионально заняться разработкой игр, то лучше изучать c# (unity) или c++ (unreal engine).
    Если на Java хотите поиграться, то libgdx
    Ответ написан
    Комментировать
  • Как исправить код в файле plugin.php, чтобы исчез белый экран админки в WordPress?

    azerphoenix
    @azerphoenix
    Java Software Engineer
    Здравствуйте!
    Проверьте версию рнр. Скорее всего у вас версия рнр 7.4 и ошибка возникла после апгрейда.
    Вот, похожая ошибка - https://stackoverflow.com/questions/59674903/tryin...
    Сказать, что конкретно нужно в вашем коде исправить не смогу, так как вы даже код свой не предоставили.
    Гуглите ошибку
    Ответ написан
    1 комментарий
  • Как работать с localeStorage в Spring приложении?

    azerphoenix
    @azerphoenix Куратор тега Java
    Java Software Engineer
    Добрый день!
    localStorage это хранилище на клиентской стороне и соответственно к backend не имеет никакого отношения.
    Вы лишь можете при помощи js отправлять данные сохраненные в ls или получать данные из бек-энд и сохранять в ls при помощи js
    Ответ написан
    Комментировать
  • Есть ли необходимость связывать сущности в БД, если я их связываю через spring data jpa в коде?

    azerphoenix
    @azerphoenix Куратор тега Java
    Java Software Engineer
    Добрый день!
    название транспорта, фамилии рабочих, инстанции, фамилия агента, фамилия заказчика.

    Скорее всего это должно быть не одной таблицей, а несколькими, так как это разные сущности.
    Т.е. Журнал может содержать в себе сущность пользователя (сущности - агент, заказчик). А далее уже используя связи OneToOne OneToMany ManyToOne ManyToMany нужно связать эти сущности между собой.

    Стоит ли заморачиваться, и связывать через ключи таблицы в sql или можно это связать в самом коде через аннотации?

    Аннотации сделают это за вас. В данном случае вы пишете по принципу code first и соответственно, вся логика создания ddl должна быть в коде.

    Какие могут быть последствия такой связи?

    Ну например, некорректное выставление каскадных типов.

    Какие есть нюансы?

    Будет сложно пересказать нюансы с учетом общности вопроса. Прочитайте документацию к Spring Data JPA и станет яснее.
    Ответ написан
    Комментировать
  • Как правильно организовать код на Java?

    azerphoenix
    @azerphoenix Куратор тега Java
    Java Software Engineer
    Добрый день!
    Используйте асинхронные запросы.
    Для запросов используйте Retrofit. Для сериализации и десериализации JSON можете использовать GSON или Jackson. Кстати, для асинхронщины можете глянуть на RxJava
    Таким образом первый вариант предпочтителен.
    Ответ написан
    Комментировать