Ответы пользователя по тегу Java
  • Как вывести цвет кнопки который был последним в java?

    azerphoenix
    @azerphoenix Куратор тега Java
    Java Software Engineer
    Добрый день.
    Если не ошибаюсь, то это уже 3-й раз, как вы задаете этот вопрос.
    В общем,
    \\ Теперь нужно чтобы при перезагрузке окна вывелся цвет который был перед закрытием. Тоест если цвет кнопки была красный чтобы вывелся красный. Если цвет кнопки обычная то вывелся обычный цвет.

    Вам нужно:
    1) Нужные данные (например, цвет текущей кнопки) сериализовать в файл или например, сохранить в БД.
    2) Далее при старте приложения прочитать содержимое файла и если в файле есть нужные вам данные (например, цвет кнопки), то его назначит для данной кнопки.
    Прочитайте про сериализацию и десериализацию в Java. А также прочитайте, как изменить цвет кнопки.
    Готово.
    Ответ написан
    3 комментария
  • Как проверить на корректность Json файла?

    azerphoenix
    @azerphoenix Куратор тега Java
    Java Software Engineer
    Добрый день.
    Чтобы проверить корректность json файл нужно для начала его прочитать и десериализовать.
    Можно попробовать сделать следующее:
    1) Прочитать json в pojo и проверить поля на null. Если одно из полей null, то попросить пользователя ввести новое значение для этого поля.
    2) Либо можно еще прочитать json при помощи jackson. А там если вы не добавили аннотацию @JsonInclude(Include.NON_NULL) к классу, то при десериализации будет выброшено соответствующее исключение. Так вот, можно словить это исключение и отобразить сообщение для юзера.
    Примерно вот, такие идеи...
    Ответ написан
    Комментировать
  • Как в java при добавлении новой записи в базу данных SQLite вернуть id (автоинкремент) именно этой записи?

    azerphoenix
    @azerphoenix Куратор тега Java
    Java Software Engineer
    В том же запросе Statement или PreparedStatement используйте примерно такую конструкцию:

    try (ResultSet generatedKeys = statement.getGeneratedKeys()) {
                if (generatedKeys.next()) {
                  long id =  generatedKeys.getLong(1);
                }
                else {
                    throw new SQLException("No ID obtained");
                }
            }
    Ответ написан
    2 комментария
  • Как получить конкретный элемент цикла?

    azerphoenix
    @azerphoenix Куратор тега Java
    Java Software Engineer
    После того, как шаблон был создан при помощи шаблонизатора и отдан клиенту, Java, jsp и т.д не играли роли. Дальше средствами js вы можете получить элемент, который был кликнут и I'd элементы например,при помощи ajax передать в бекэнд. Для этого нужны знания Javascript. Возможно, применение jquery
    Ответ написан
    5 комментариев
  • Как поменять переменные среды в macOS?

    azerphoenix
    @azerphoenix Куратор тега Java
    Java Software Engineer
    Добрый день!
    Я предпочитаю использовать sdkman
    https://sdkman.io/install

    А дальше можно легко устанавливать нужные версии jdk используя
    sdk install java {version}
    А чтобы использовать нужную версию java используйте
    sdk use java {version}
    Ответ написан
    4 комментария
  • Как реализовать фронт на Rest api?

    azerphoenix
    @azerphoenix Куратор тега Java
    Java Software Engineer
    Как отметил коллега, это делается через js-фреймворк. Если хотите изучить js-фреймворк, то простым фреймворком является VueJS. Можете начать с него. Ну разумеется, что знание JavaScript или TypeScript обязательно.
    Ответ написан
    Комментировать
  • Как сделать следующую трансформацию данных в Java?

    azerphoenix
    @azerphoenix Куратор тега Java
    Java Software Engineer
    Добрый день!
    Я так понимаю, что вы хотите прочитать из одного JSON в pojo (Order). А затем конвертировать его в JSON другой структуры?
    Если так, то разделите задачу на 3 этапа:
    1) десериализовать из JSON в pojo Order
    2) сконвертировать (замаппить) Order -> OrderDto (назовите как хотите)
    3) сериализовать OrderDto в JSON.

    Для первого и третьего этапа исопльзуйте jackson || gson. Для второго этапа можно использовать библиотеку ModelMapper || MapStruct. Или же можно просто написать статичный метод, который принимает Order, а далее сеттит его значения для OrderDto и возвращает OrderDto.

    Остается создать pojo для OrderDto на основе структуры JSON, которую вы хотите получить в конечном результате.
    Можете воспользоваться сайтом для генерации pojo на основе json - https://www.jsonschema2pojo.org/
    Ответ написан
  • Что значит фраза "two's complement integer" в определении примитивных типов в Java?

    azerphoenix
    @azerphoenix Куратор тега Java
    Java Software Engineer
    Добрый день.
    Ммм... так ведь, можно же погуглить?
    https://en.wikipedia.org/wiki/Two%27s_complement
    https://ru.wikipedia.org/wiki/%D0%94%D0%BE%D0%BF%D...
    Думаю, на русском, да и на английском достаточно информативно написано.
    Ответ написан
    Комментировать
  • Как организовать сложное DTO из нескольких сущностей?

    azerphoenix
    @azerphoenix Куратор тега Java
    Java Software Engineer
    Ну можно создать несколько DTO по аналогии с нужными сущностями из БД.
    Например,
    class User {
    Role role;
    }
    class Role {
    List<Privilege> privileges;
    }
    
    class UserDto {
    RoleDto role;
    }
    class RoleDto {
    List<PrivilegeDto> privileges;
    }


    Если названия совпадают, то мапперы смогут сковертировать Dto <--> Entity, в ином случае надо будет кастомизировать мапперы или добавить соответствующие аннотации. Можно взять тот же MapStruct || ModelMapper или использовать спринговый Converter<>
    Ответ написан
    Комментировать
  • Как запустить telegram bot на java?

    azerphoenix
    @azerphoenix Куратор тега Java
    Java Software Engineer
    TelegramApiRequestException: Error deleting webhook: [401] Unauthorized

    Вот, аналогичная проблема:
    https://stackoverflow.com/questions/48641520/teleg...
    Проверьте токен. По какой-то причине не происходит авторизация. Проверьте ваши credentials
    Ответ написан
    Комментировать
  • Возможно ли в данном коде создать еще один класс с методом, который вызывал бы метод print() для возврата значений и как это записать?

    azerphoenix
    @azerphoenix Куратор тега Java
    Java Software Engineer
    У вас метод print() не возвращает результат (void). Соответственно, сколько бы вы не вызывали метод print() в другом методе результат он не вернет.
    Другое дело, что вы можете перегрузить метод print, чтобы он возвращал значение.
    Ответ написан
  • Hibernate, как получить два объекта из одной таблицы?

    azerphoenix
    @azerphoenix Куратор тега Java
    Java Software Engineer
    Подозреваю, что вам нужно глянуть в сторону проекций
    JPA / Hibernate Projections
    https://www.baeldung.com/jpa-hibernate-projections
    Ответ написан
    1 комментарий
  • Я написал код и мне нужно дописать класс PriorityQueue но я незнаю правильно ли я написал класс?

    azerphoenix
    @azerphoenix Куратор тега Java
    Java Software Engineer
    Добрый день!

    но я не знаю правильно ли я написал класс - подскажите пожалуйста.

    Ну в принципе код рабочий. Другое дело, что поведение кода может отличаться от ожидаемого вами. Тут не подскажу, ибо не знаю вашей конечной цели.

    Что касается кода:
    public class Main {
        public static class PriorityQueueExample {

    Это конечно не ошибка, но и смысла в данном случае в статичном классе не вижу.
    Можно удалить класс Main
    public class PriorityQueueExample {

    PriorityQueue<Integer> PQueue = new PriorityQueue<>();

    Названия переменных согласно naming convention с маленькой буквы. Например, pQueue, а еще лучше, если они будут осознанными (читаемыми). Например, вместо PQueue2 использовать carQueue или carModelQueue и т.д.

    PQueue2.add("BMW");
                PQueue.add(25);
                PQueue2.add("Mazda");
                PQueue.add(35);
                PQueue2.add("Tesla");
    
                PQueue.remove(10);
                PQueue2.remove("Tesla");

    Вы добавили 2 элемента Mazda & Tesla, 25 & 35, но удаляете элемент, которого нет в очереди (10, Tesla). Точнее вы добавили Tesla, а 10 не добавили. Возможно, что это просто упущение.

    Возможно, что если увижу задание (задачу), то смогу точно сказать, насколько корректно вы реализовали его
    Ответ написан
    2 комментария
  • Почему сервер возвращает в Json'е null вместо объектов?

    azerphoenix
    @azerphoenix Куратор тега Java
    Java Software Engineer
    Но, если конвертацию в dto убрать, всё работает. Как это вылечить?

    Значит, что-то не так на этапе конвертации. Проведите дебаг проекта и посмотрите, что не так
    Ответ написан
    Комментировать
  • Как получить POJO из JsonArray?

    azerphoenix
    @azerphoenix Куратор тега Java
    Java Software Engineer
    Онлайн - https://www.jsonschema2pojo.org/
    У них также есть maven plugin, которым можно воспользоваться.
    Умеет генерировать pojo для jackson & gson etc.
    Ответ написан
    6 комментариев
  • Как конфигурировать программу в контейнере снаружи?

    azerphoenix
    @azerphoenix Куратор тега Java
    Java Software Engineer
    Добрый день!
    На самом деле вариантов много и ответы можно легко найти, если поискать.
    Вот, несколькие из них:
    Допустим, что вы собираете образ используя Dockerfile. Если вы хотите иметь возможность конфигурировать сам процесс создания image на основе Dockerfile, то посмотрите на такие инструкции, как ARG & ENV. ARG - позволяет определять аргументы на этапе (до создания) image. ENV - environment определяет переменные среды.
    Соответственно, передать эти параметры можно так:
    1) В случае ARG для docker использовать --build-args. В случае ENV использовать -e
    2) В случае использования docker-compose для передачи параметра в Dockerfile использовать environment:
    Например,
    environment:
      - BASE_URL=http://example.com

    3) Если вы хотите передать конфигурацию для application.properties или application.yml извне например, из docker-compose, то можете просто в environment указать нужные конфиги.
    Например,
    environment:
          - spring.application.name=custom_app


    Доп. информация:
    https://stackoverflow.com/questions/46057625/exter...
    https://stackoverflow.com/questions/58695423/pass-...
    https://medium.com/@cybourgeoisie/docker-env-metho...
    Ответ написан
    Комментировать
  • Найти позицию элемента в массиве?

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

    Вводится массив целых чисел.

    1) При помощи класса Scanner на вход получаем целые числа (int) и добавляем их в массив. Можно для удобства сперва добавлять их в List, а потом из List получить Array, так как массив при инициализации бывает фиксированного размера и придется тогда пересоздавать каждый раз массив. Легче при вводе числа из консоли добавлять их в список List<Integer>, а затем уже из списка получить массив чисел.

    Найти позицию второго с конца элемента, который встречается в массиве наиболее часто.

    2) Для этого сперва нужно создать Map<Integer, Integer> (Map<Число, Кол-во>)
    Второй элемент из конца массива находится при помощи int numIndex = arr.length - 1, а само число можно найти через int num = arr[numIndex]
    Если это число имеется в массиве более 2-х раз, то с конца массива нужно посчитать встречаемость элементов равных данному элементу. Когда дойдете до 2-х это будет вашим ответом на задачу.

    Если нужно найти наиболее часто встречающийся элемент, то можете попробовать создать Map<Integer, Integer> key = число хранимое в массиве value (count) его количество (сколько раз он встречается в массиве).

    Если несколько значений встречаются в массиве одинаковое кол-во раз выбрать наибольший по абсолютному значению,

    3) Если value (count) из Map совпадает с другим value, то выбрать наиболшее значение key.
    Т.е. допустим в Map у вас число 4 встречается 10 раз и число 5 встречается 11 раз, то выбираем число 5.

    Если такого элемента нет (все элементы массива разные), то вернуть -1.

    4) Если в массиве нет одинаковых чисел, то возвращаем -1

    Примерно, как-то так...
    Ответ написан
    Комментировать
  • Правильно ли это будет в качестве начала написания календаря?

    azerphoenix
    @azerphoenix Куратор тега Java
    Java Software Engineer
    Я вам ранее в одном из ваших вопросов ответил и даже задал встречный вопрос.
    Чтобы написать календарь на 5 лет (все 5 лет выводить через цикл for) или один год вывести через цикл а остальное... как написать?
    Если честно, то мне кажется, что вы реализовываете календарь не так как нужно из-за чего позвольте спросить, какого рода календарь вы пишете?

    Соответственно, если вы пишете JavaFX приложение, то это одно, если консольное приложение, то это другое, ну а если андроид приложение, то это тоже другое.
    Также в своем ответе, я указал, что есть классы для работы с датой, временем и календарем. (читаем мой ответ по ссылке выше).
    Разобравшись с ответом вам станет ясно, чего именно вы ожидаете увидеть в конечном результате.
    Вот, тут пример консольного приложения - https://stackoverflow.com/questions/26962388/print...
    С учетом вышеперечисленного отвечаю на ваш вопрос:
    Правильно ли это будет в качестве начала написания календаря?

    Вопрос необходимо уточнить и указать конечную цель, которую вы хотите достичь. А затем, уже мы постараемся вам помочь.
    Ответ написан
  • Куда двигаться дальше после java core?

    azerphoenix
    @azerphoenix Куратор тега Java
    Java Software Engineer
    Можете глянуть тут примерный план занятий по Java EE
    https://www.it-academy.by/course/java-developer/jd...
    Ну или погуглите любые другие курсы и посмотрите на учебный план курса
    Ответ написан
    Комментировать
  • Как вызвать private метод в Fragmente Android Studio?

    azerphoenix
    @azerphoenix Куратор тега Java
    Java Software Engineer
    Проблема не в том, что вы не вызываете метод, так как он тут явно вызывается:
    case R.id.signIn:
                    userLogin();
                    break;

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

    Попробуйте провести дебаг приложения и загляните в логи
    Ответ написан
    Комментировать