Ответы пользователя по тегу Java
  • Как из Document привести к нужному мне объекту?

    zolt85
    @zolt85
    Программист
    Сделать конструктор в Movie, в который передавать Document.
    Ответ написан
  • Проверка наличия ключа в массиве. Как?

    zolt85
    @zolt85
    Программист
    Java 8 же, пацаны!
    public static void main(String[] args) {
            String[] catsNames = new String[]{"Матроскин", "Барбос", "Пушистый п#$%рас"};
    
            boolean contains = Arrays.stream(cats).anyMatch("Матроскин"::equals);
            System.out.println(contains); //имеем true
            contains = Arrays.stream(cats).anyMatch("Барбоскин"::equals);
            System.out.println(contains); //имеем false
    }
    Ответ написан
  • Подключение l&f в intellij IDEA?

    zolt85
    @zolt85
    Программист
    Не совсем понятно, как Вы подключаете jar с исходниками в IDEA, и как она после этого их не видит?
    Возможно документация Вам поможет.
    Ответ написан
    Комментировать
  • Учебник по разработке приложений на Java?

    zolt85
    @zolt85
    Программист
    Паттерны объектно-ориентированного проектирования. Банда Четырех.
    Совершенный код. Макконелл.
    Ответ написан
    Комментировать
  • Что дает Java Spring?

    zolt85
    @zolt85
    Программист
    Spring Framework, как и любой другой уважающий себя framework, дает Вам основу, скелет, систему координат, в которой Вы (а еще важнее не только Вы, но и другие разработчики) разбираетесь и ориентируетесь. И вот используя этот скелет, можно строить приложения. В основе своей Spring Framework это про бины, управление бинами и IoC (Inversion of Control). Поверх всего этого строятся остальные модули Spring Security, Spring MVC и прочие (тысячи их!).
    Ответ написан
    Комментировать
  • Как организовать приведенный кусок кода в метод?

    zolt85
    @zolt85
    Программист
    Глядя на исходники понятно, что игра длится ровно один цикл и если игрок не наткнулся на бомбу, нет возможности продолжить игру. Если я все правильно понял, то текущий код можно модифицировать так:
    int[] pole = {0,1,2,3,4};
            String[] poleOne = {"A","X","X","X","X"};
            int [] poleOneInt = {0, 0, 0, 0, 0};
            String[] poleTwo = {"B","X","X","X","X"};
            int [] poleTwoInt = {0, 0, 0, 0, 0};
            System.out.println(pole[0] + "  " + pole[1] + "  " + pole[2] + "  " + pole [3] + "  " + pole[4]);
            System.out.println(poleOne[0] + "  " + poleOne[1] + "  " + poleOne[2] + "  " + poleOne[3] + "  " + poleOne[4]);
            System.out.println(poleTwo[0] + "  " + poleTwo[1] + "  " + poleTwo[2] + "  " + poleTwo[3] + "  " + poleTwo[4]);
    
            Random rbombOne = new Random();
            int bombOne = rbombOne.nextInt(4)+1;
            poleOneInt [bombOne] = bombOne;
            //проверка где бомба, для отладки
            System.out.println("бомба в " + bombOne);
    
            Random rbombTwo = new Random();
            int bombTwo = rbombTwo.nextInt(4)+1;
            poleTwoInt [bombTwo] = bombTwo;
            //проверка где бомба, для отладки
            System.out.println("бомба в " + bombTwo);
    
            boolean runs = true;
            while(running) {
                System.out.println("Введите строку в формате А или B: ");
    
                Scanner sPole = new Scanner(System.in);
                String scanLetter = sPole.next();
    
                switch (scanLetter) {
                    case "A":
                        System.out.println("Введите номер столбца от 1 до 5: ");
                        Scanner sNum = new Scanner(System.in);
                        int scanNum = sNum.nextInt();
                        if (poleOneInt[scanNum] > 0 ){
                            System.out.println("Booooooom! You Lose");
                            runs = false;
                        }
                        poleOne[scanNum] = " ";
                        break;
                    case "B":
                        System.out.println("Введите номер столбца от 1 до 5: ");
                        Scanner s2Num = new Scanner(System.in);
                        int scan2Num = s2Num.nextInt();
                        if (poleTwoInt[scan2Num] > 0 ){
                            System.out.println("Booooooom! You Lose");
                            runs = false;
                        }
                        poleTwo[scan2Num] = " ";
                        break;
                    default: break;
                }
    
                System.out.println(pole[0] + "  " + pole[1] + "  " + pole[2] + "  " + pole [3] + "  " + pole[4]);
                System.out.println(poleOne[0] + "  " + poleOne[1] + "  " + poleOne[2] + "  " + poleOne[3] + "  " + poleOne[4]);
                System.out.println(poleTwo[0] + "  " + poleTwo[1] + "  " + poleTwo[2] + "  " + poleTwo[3] + "  " + poleTwo[4]);
    
            }

    Если присмотреться, то мы весь игровой процесс заворачиваем в цикл while, который прекратится после того, как переменная runs примет значение false. В данном конкретном случае runs примет значение false, если игрок введет координаты поля с бомбой. Этот код не оптимален, и не претендует на единственно возможный вариант решения. И в нем не предусмотрен вариант, когда игрок раскроет все поля без бомб, т.е. выиграет. Это уже оставлю на Ваше усмотрение.
    Ответ написан
    3 комментария
  • Изучения Java на примере Android приложений?

    zolt85
    @zolt85
    Программист
    Так себе идея изучать Java через Android. Android использует Java исключительно как фронт, синтаксис, понятный разработчику. Но JVM там своя. Принцип "написано однажды, запускается везде" из-за этого не соблюдается. Вы не можете запустить приложение, написанное с использованием Android SDK запустить где-либо еще, кроме Android OS. Java как язык довольно банален и скучен. Изучать Java просто как язык, тоже скучно. Нужно сразу врубаться в инфраструктуру. Какой-то одной книги наверное нет. На сайте Oracle довольно подробные есть туториалы по реализации того или иного функционала. На Вашем месте (а когда-то я там был) я бы взял уже готовые наработки (что-то же Вы реализовали на PHP, JS) и попробовал бы воспроизвести их на Java. Если это web - берите Spring Framework с его Spring MVC (благо туториалов по нему оооочень много), если хотите desktop - берите JavaFX (тут инфы не так много, но можно найти). И тут я пришел к тому, что Вы, возможно, хотите mobile ... Тогда да, берем Android и погнали ... Но основная мысль в том, что учить Java не сама цель, целью должно быть изучение инфраструктуры и инструментов для построения ПО на Java.
    Ответ написан
    Комментировать
  • Как получить список методов класса Java с помощью библиотеки asm?

    zolt85
    @zolt85
    Программист
    Если вы можете загрузить класс (через Class.forName(), например), то можно воспользоваться методом getDeclaredMethod(), обернув вызов в try/catch и ловить NoSuchMethodException, в случае если искомый метод не найден. Этот функционал идет "из коробки" в JDK, никаких дополнительных библиотек не нужно.
    Ответ написан
  • Как можно добавить текст из Word или из ему подобных программ на форму в JavaFX?

    zolt85
    @zolt85
    Программист
    Если контент статичный, можно документы перегнать в PDF, и нарезать с них картинок, и уже их отображать. Можно сразу PDF отображать. Если контент динамический, и нужно перегонять в PDF "на лету", можно заиспользовать OpenOffice (нужно чтоб он был на клиенте). Это максимально простые способы отображения документов в Java приложении. Если нет потребности в кросс-платформенности программы, и она нужна на винде, я бы на Вашем месте взял бы .Net Framework и C#, под него точно есть либы для нативного отображения документов MS Office.
    Ответ написан
    Комментировать
  • Почему не работает ajax запрос?

    zolt85
    @zolt85
    Программист
    Во-первых, не уверен, что Вам особо нужен AJAX в данном случае. Возможно достаточно будет простого submit-а формы. Во-вторых, у Вас опечатка в параметрах $.ajax, должно быть data, а не date. В-третьих, убедитесь, что на стороне сервера есть servlet с методом doPost, который готов обработать Ваш запрос.
    Ответ написан
    3 комментария
  • Насколько устарел Swing?

    zolt85
    @zolt85
    Программист
    Swing хоть и устарел, но живее всех, и чисто для общего развития, его стоит знать, хотя бы на базовом уровне. Живее всех живых он именно из-за множества Legacy софта. Новый софт, если Вы прям желаете писать на Java, лучше разрабатывать на JavaFX, он очень даже не плох.
    ИМХО.
    Ответ написан
    Комментировать
  • Как объявить скоп сервиса так, чтобы при вызове в RabbitListener сервис был заново инициализирован?

    zolt85
    @zolt85
    Программист
    Для того, чтоб спринговый бин инициализировался каждый раз, когда он будет запрошен, его нужно отметить аннотацией
    @Scope(ConfigurableBeanFactory.SCOPE_PROTOTYPE)
    Тут есть некоторые нюансы, а именно, если Вы будете инжектить такой бин в другой бин, который является синглтоном (по-умолчанию), то заинжектится такой бин только один раз, соответственно по-факту это будет синглтон.
    А если Вы будете просить такой бин в коде у ApplicationContext, то да, всегда будете получать новый инстанс бина.
    Ответ написан
  • Как реализовать неблокирующий таймер на java?

    zolt85
    @zolt85
    Программист
    Запускать в отдельном потоке. Если нужно вернуть какой-то результат после запуска задачи, можно использовать интерфейс Callable.
    В общем тема не нова. Примеров в интернете тысячи.
    Ответ написан
    1 комментарий
  • Что означает ошибка "Test.java uses unchecked or unsafe operations"?

    zolt85
    @zolt85
    Программист
    Ошибки никакой нет, чисто синтаксически. Не используйте Vector. Возьмите вместо него типизированный List
    Именно на Vector ругнулся компилятор, ибо он хоть и есть, но не рекомендуется к использованию.
    List<String> v = new ArrayList<>();
    Ответ написан
    2 комментария
  • Java EE, Spring core/web. Как правильно настроить application context с помощью аннотаций?

    zolt85
    @zolt85
    Программист
    Если хочется все настроить через аннотации, то все возможно


    Как все это дело прикрутить к web.xml?
    Нужно ли создавать отдельный класс-context и описывать зависимости там?

    web.xml вообще не нужен. Можно инициализировать dispatcher-servlet так
    package configuration;
    
    import org.springframework.web.servlet.support.*;
    
    /**
      * Настройка dispatcher-servlet
     */
    public class MyAppInitializer extends AbstractAnnotationConfigDispatcherServletInitializer {
    
    
    	@Override
    	protected Class<?>[] getRootConfigClasses() {
    		return null;
    	}
    
    	@Override
    	protected Class<?>[] getServletConfigClasses() {
    		return new Class[]{MvcContext.class};
    	}
    
    	@Override
    	protected String[] getServletMappings() {
    		return new String[]{"/"};
    	}
    }


    Тут надо обратить внимание на метод getServletConfigClasses. Им мы отдаем классы конфигурации dispatcher-servlet.
    MvcContext.java может выглядеть так
    @Configuration
    @EnableWebMvc
    public class MvcContext {/** тут описываем бины или иные настройки */}


    Аннотация @Configuration говорит Spring-у что класс может содержать описания бинов.
    Аннотация @EnableWebMvc импортирует базовую настройку spring-mvc (контроллеры, резолверы, хэндлеры всё вот это вот)

    Какие аннотации к какому из представленных классов использовать и почему?


    User - @Entity - я так понимаю JPA для работы с БД используется
    UserService - @Service - ни к чему эта аннотация не обязывает, просто для удобства
    MainController - @Controller - Spring поймет что класс обрабатывает HTTP запросы
    остальные классы можно отметить аннотацией @Component, если они используются как бины спринга

    Вызывается ли конструктор класса (например - UserService) при инициализации его как Bean?

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

    Еще советую Вам ознакомиться с книгой Крейга Уоллса "Spring в действии" (4-е издание, по-моему, сейчас актуально). Дядька очень доступно объясняет все заданные Вами вопросы, и работу многих компонентов фреймворка в целом.
    Ответ написан
    Комментировать
  • Как исправить java.lang.NullPointerExeption?

    zolt85
    @zolt85
    Программист
    Ну смотрите, Вы берете variable, и просите у него такие атрибуты как storiesNumber и elevatorCapacity. Т.е. Ваш код ожидает что запись в XML будет вида
    <variable storiesNumber = "25" elevatorCapacity = "30"/>

    А в Вашем XML атрибуты storiesNumber и elevatorCapacity принадлежат разным variable. Вот и получается, что вы берете первый variable, просите у него атрибут storiesNumber и он есть, затем вы у того же самого variable просите атрибут elevatorCapacity и его нет, вот Вам и NPE.
    Ответ написан
    4 комментария
  • С чего начать разработку серверного ПО на Java?

    zolt85
    @zolt85
    Программист
    Начинать разработку ПО стоит с изучения уже существующих решений на рынке. А то как уже кто-то написал за Вас сервер? Бери и пользуйся!. Опять же, если есть решения с открытым кодом можно этот код изучить. Ну и Вы не описали предназначение Ваших серверов. Web, СУБД, просто маршрутизатор запросов? Поэтому более детальных советов дать не представляется возможным. Изучайте просто построение ПО на Java.
    Ответ написан
    2 комментария
  • Как в IntelliJ IDEA преобразовать maven-проект в gradle-проект?

    zolt85
    @zolt85
    Программист
    В одном из батлов build тулзов Барух Садогурский показывал свой плагин для такой задачи. Можете попробовать.
    Ответ написан
    Комментировать
  • Ошибка при вополнении NoClassDefFoundError?

    zolt85
    @zolt85
    Программист
    Не хочу Вас огорчать, но не получится у Вас прикрутить просто так сию библиотеку к JavaFX проекту, т.к. она "завязана" на Android SDK. NoClassDefFoundError говорит о том, что класс, который был доступен в момент компиляции, перестал быть доступен в момент исполнения. Если прогуглить класс android.os.Looper, то увидим, что это класс из Android SDK.
    Ответ написан
    3 комментария
  • Что почитать админу, сопровождающему проекты на java?

    zolt85
    @zolt85
    Программист
    Не понял где тут Tomcat, но правилом хорошего тона является ознакомление с оф. документацией к перечисленным Вами серверам.
    Ответ написан
    3 комментария