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

    Shockoway
    @Shockoway
    Можно воспользоваться командой taskkill:
    Runtime.getRuntime().exec("taskkill calc /f");
    Ответ написан
  • Выбор языка программирования для GUI?

    Shockoway
    @Shockoway
    Имхо, но мне кажется, что основная проблема Java, когда её оценивают в контексте GUI, заключаются в том, что многие люди до сих пор пишут про покрывшийся путиной и пылью Swing, одно только упоминание которого вызывает уныние. Хотя ему на смену уже давно пришел JavaFX. Под JavaFX даже SceneBuilder есть, который сильно упрощает и ускоряет процесс создания UI (напоминает работу с Acitivities в Android разработке) и тут, кстати, тоже можно применять CSS.
    Да, разумеется, в плане GUI Java не идеальна, но и плохой называть её уже сложно.
    Ответ написан
    Комментировать
  • JAVA8 Руководство для начинающих, Шилдт. Для новичка - а надо ли?

    Shockoway
    @Shockoway
    Дело не в книге, это нормальное явления. Будем честны, само по себе программирование сложно назвать чем-то увлекательным, особенно на этапе обучения, когда, зачастую, навыки не успевают угнаться за амбициями и возникает чувство тщетности прилагаемых усилий.
    Зато увлекательной может быть реализация интересного проекта. Просто найдите идею от которой у вас "загораются" глаза и задайтесь целью её реализовать, начинайте с малого, даже в процессе написания простых программ можно наткнуться на неожиданные вещи. Ну и конечно наберитесь терпения, без этого никуда, как ни крути.
    Но в каком-то смысле люди правы. Шилдт, плох тем, что он предпочтет взвалить на читателя пару лишних абзацев сухого текста и терминологии вместо того, чтобы хоть на минутку абстрагироваться от программирования и привести какие-либо аналогии из жизни, которых вполне могло бы хватить для понимания темы.
    Да и вообще это не та книга, которая ставит перед собой задачу увлечь читателя, она действительно скорее как справочник, для глубокого изучения. В качестве противоположного примера я бы привел книгу Head first Java, авторы разбавляют текст шутейками, метафорами и протаскивая одну и ту же программу через пол книги, выстраивая тем самым своеобразную сюжетную арку, заставляют вас постепенно развивать её с учетом рассматриваемых тем. Но за такую легкость повествования приходится платить глубиной получаемых знаний, они довольно поверхностны и поэтому в конечном счете придется вернуться, например, к тому же Шилдту. Имхо, но лучший вариант - иметь под рукой сразу несколько книг, тем самым имея возможность рассмотреть одни и те же темы под разными углами.
    Ответ написан
    Комментировать
  • Как дописать строку в конец текстового файла в Java?

    Shockoway
    @Shockoway
    Ссылка
    А вообще, если подразумевается, что с каждой "сессией" файл всё таки будет обнуляться, то разумнее сначала сгенерировать необходимое кол-во паролей, а уже потом записать их все разом. (Ваш Кэп)
    Ответ написан
  • Можете привести простой пример (код) полиморфизма на Java?

    Shockoway
    @Shockoway
    Интерфейс это перечень методов, а если чуть абстрагироваться, то это определенная модель поведения и когда какой-то класс реализует интерфейс это означает, что он гарантированно поддерживает описанную в интерфейсе модель поведения. Тем самым если у вас есть определенный набор разных классов (в данном случае это Цех и Отдел), но поддерживающих одну и ту же модель поведения (интерфейс Подразделение), то это позволяет вам взаимодействовать с ним не глядя на то, к какому конкретно классу они принадлежат.
    Сценариев применения на практике - множество, но вот вам простейший:
    Допустим у вас есть задача (взято с потолка) посчитать ежедневные затраты на питание всех сотрудников того или иного подразделения. В итоге получается, что нам нужен метод, который принимал бы в качестве аргумента экземпляр подразделения и возвращал бы конкретную сумму.
    // Subdivision это тот самый интерфейс "Подразделение"
    int getFoodCost(Subdivision subdivision) {
    	// допустим, что на каждого человека тратится по 300 руб в день
    	return subdivision.numberOfEmployers() * 300;
    }

    В результате мы получаем метод, который может работать абсолютно с любыми классами, которые реализуют интерфейс Subdivision. А вот если бы вы не использовали интерфейс, а просто добавили бы в каждый класс по методу numberOfEmployers(), то для каждого класса пришлось бы писать свою версию getFoodCost().
    Ответ написан
    4 комментария
  • Java junior должен знать regex?

    Shockoway
    @Shockoway
    В основе своей эта тема настолько проста, что задаваться вопросом "Учить или не учить?" честно говоря глупо. Нет, ну серьезно, вы уже потратили на этот вопрос больше времени, чем нужно для того, чтобы ознакомиться с регулярками до уровня на котором можно не париться.
    Ответ написан
  • Почему выдает ошибку компиляции?

    Shockoway
    @Shockoway
    Как вариант - можно было бросить unchecked исключение:
    public void write() {
            String splitter = String.join("", Collections.nCopies(settings.page.width, "-"));
            List<String> headLines = columnsToRows(getColumnTitles());
    
            try (BufferedWriter writer = Files.newBufferedWriter(outputPath, DEFAULT_CHARSET)) {
                inputData.stream().map(this::columnsToRows).flatMap(List::stream).forEach(writer::write);
            } catch (IOException e) {
                throw new UncheckedIOException(e);
            }
        }
    Ответ написан
    Комментировать
  • Как добавить gradle и maven в Idea?

    Shockoway
    @Shockoway
    Если речь всё таки о добавлении в саму Intellij IDEA, а не конкретно в существующий проект, то всё довольно просто:
    1) Прежде всего и Gradle, и Maven нужно установить на пк (оф.инструкции для gradle и maven, русскоязычные версии легко гуглятся).
    2) Затем нужно активировать соответствующие плагины в настройках IDE, они прям так и называются: Maven integration и Gradle.
    3) В появившихся пунктах настроек (Settings > Build, Execution, Deployment > Build Tools > ...) прописать пути.
    В принципе, если на первом этапе обошлось без факапов, то всё должно заработать.
    Ответ написан
    Комментировать
  • Как изменить значение поля интерфейса в Java?

    Shockoway
    @Shockoway
    Код из разряда "и обфускация не нужна".
    Просто вынесите класс MyLogs за пределы интерфейса и добавьте ему нормальный человеческий сеттер (рефлексия? seriously!?) для переменной, которую вы хотите менять.
    Ответ написан
  • Как установить Apache poi на IntelIJ Idea?

    Shockoway
    @Shockoway
    Apache POI это библиотека, а значит её нужно не устанавливать, а подключать, и не к IDE, а к проекту.
    Вариантов по сути всего 2:
    1) Скачать архив и подключить необходимые jar-файлы вручную, через Project Structure > Libraries...
    2) Подключить библиотеку через maven элементарным добавлением зависимостей в pom.xml (другое дело, что если у вас нет maven'а, то это уже отдельная история со своими танцами под бубны).
    Ответ написан
    1 комментарий
  • Как исправить ошибку при подключении к MySql через JDBC?

    Shockoway
    @Shockoway
    Скорее всего есть какой-то более корректный путь, но я лечил так:
    "jdbc:mysql://[хост]:[порт]/[бд]?useUnicode=true&useJDBCCompliantTimezoneShift=true&useLegacyDatetimeCode=false&serverTimezone=UTC"
    Ответ написан
    2 комментария
  • Мистика и Java swing, в чем проблема?

    Shockoway
    @Shockoway
    frame.setVisible(true);
    Этот метод желательно вызывать в самом конце. В вашем же случае вы сначала рендерите окно, а уже потом добавляете на него элементы.
    Ответ написан
    2 комментария
  • Есть ли хорошая краткая книга по JavaFX?

    Shockoway
    @Shockoway
    Я, в общем-то, не любитель "видосиков", но лично мне с принципами работы JavaFX помог разобраться небольшой плейлист на youtube
    Остальное, как мне кажется, можно прочесть и в документации.
    Ответ написан
    Комментировать
  • Как запустив единожды class1 использовать созданные значения в других классах не используя конструктор?

    Shockoway
    @Shockoway
    Можно завести некий Class5 со статическими полями Class1, Class2... и обращаться к ним через него.
    Ответ написан
    6 комментариев
  • Как лучше поступить с конструктором?

    Shockoway
    @Shockoway
    public class First {
        Second second;
        public First() {
            second = add(second);
        }
        public Second add(Second sec) {
            sec = new Second(11);
            sec.left = new Second(15);
            return sec;
        }
    }
    class Second {
        public Second left;
        public Second right;
        public Integer value;
        public Second(Integer value) {
            this.value = value;
        }
    }


    А вообще не совсем ясно к чему так усложнять.
    public class First {
        Second second;
        
        public First(int value, int left, int right) {
        	second = new Second(value, left, right);
        }
        public First(int value) {
        	second = new Second(value);
        }
    }
    
    class Second {
        public Second left;
        public Second right;
        public int value;
        
        public Second(int value, int left, int right) {
            this.value = value;
            this.left = new Second(left);
            this.right = new Second(right);
        }
        
        public Second(int value) {
        	this.value = value;
        }
        
    }
    Ответ написан
  • Как облегчить eclipse?

    Shockoway
    @Shockoway
    В данном случае эффективнее и проще, пожалуй, будет воспользоваться каким-нибудь notepad++ в связке с JDK, либо приглядеться к другим средам разработки, тот же netbeans например.
    Ответ написан
    Комментировать
  • Какие качественные ресурсы (книги/ видео/ сайты) есть для желающего программировать под android?

    Shockoway
    @Shockoway
    startandroid.ru/ru
    В свое время, когда искал подобные ресурсы единственным толковым, в рунете, был этот. На тот момент там были только текстовые уроки, но сейчас присутствуют уже и видео. Обновляется и по сей день.
    Ответ написан
    Комментировать