Задать вопрос
Ответы пользователя по тегу Java
  • Gradle не подтягивает зависимости, в чем косяк?

    TheKnight
    @TheKnight
    Программист
    1. Сборка из Android Studio проходит? В какой директории находится тест? Возможно, проблема в том, что он считается кодом, а не тестом. Проверить можно либо посмотрев где он лежит и проверив свойства папки либо переключив junit в режим implementation вместо testImplementation и убедившись что это приводит к нужному результату..
    2. Layout Inspector попробуй, там есть id элементов и некоторая другая информация о текущем экране.
    Ответ написан
    Комментировать
  • Как использовать AsyncTask вместе с Selenium?

    TheKnight
    @TheKnight
    Программист
    Но это не отменяет того, что Вы начали переводить тему. Задача сообщества - постараться помочь мне, а не упрекать и задавать вопросы, которые не относятся к теме.

    mihsaklimov, нет такой задачи у сообщества. Есть задача удовлетворить свое любопытство и почесать свое ЧСВ.
    Если вы думаете по другому - то стоит проверить свои взгляды на реальность.

    Что же касается вашей проблемы - кажется, вы банально ошиблись с id элемента. Я наблюдаю id "search-text-guest". Кроме того, стоит подумать о более вменяемом способе ожидания, чем ручками через Thread.sleep каждый раз.

    И все же продолжим чесать ЧСВ - использовать selenium изнутри приложения для поиска чего то на стороннем сайте плохая идея. Почему бы не воспользоваться существующим API? Если его не существует - почему бы его не запилить? Какую задачу вы вообще пытаетесь решить, что потребовался такой изврат?
    Ответ написан
    Комментировать
  • Как узнать сколько параметров передается в метод Java?

    TheKnight
    @TheKnight
    Программист
    Если в метод передается varargs (пример стырен выше)
    public static void main(Object... args) {
      System.out.println(args.length);
    }

    то достаточно воспринимать args как массив и работать с ним так же.
    Если же речь о методе в общем случае - то вам понадобится Reflection API, объект соответствующего метода и его методы getParameterCount() и getParameterTypes().

    Но зачем вам это? Может быть проблему стоит решать по другому?
    Ответ написан
  • Как возможно посчитать повторяющиеся буквы в слове?

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

    Зависит еще от того, в какой кодировке текст, какое разнообразие букв и так далее.
    Юникодная таблица должна уместиться в 20 килобайт.
    Если же мы рассматриваем только русские(английские) буквы в нижнем регистре - то это 33(26) бит дополнительной памяти. Не учитывая вспомогательные обертки. Либо использовать UInt64(UInt32 для английских букв) как хранилище и битовой магией проверять и выставлять.
    Ответ написан
    Комментировать
  • Как вынести переменную вне класса?

    TheKnight
    @TheKnight
    Программист
    Ну как как...
    Сделать ее полем класса. Не статическим и не финальным. Если ваш класс используется из нескольких потоков - можно использовать ThreadLocal, что бы менялась только переменная в текущем потоке.

    Есть более простой вариант - вернуть ее из метода. И передать в следующий метод.

    (Джонни, ты точно не терял свои таблетки?)
    Ответ написан
    3 комментария
  • Почему не прогоняются JUnit тесты в maven?

    TheKnight
    @TheKnight
    Программист
    Гуглить пробовал?Тык!
    В конце статьи есть пример pom.xml. В нем не сложно разобраться и попробовать прописать что нужно. Если не поможет - будем разбираться дальше.
    Ответ написан
    Комментировать
  • Как писать в файл в jar-нике из класса, находящегося в том же jar-нике?

    TheKnight
    @TheKnight
    Программист
    Сделай проще.
    Храни стартовый топ лист в jar-файле с игрой. При первой необходимости записи в него - создавай в строго определенном месте (в домашней директории пользователя, рядом с jar'ником, etc) файл с обновленным топом игроков.

    Процесс загрузки топа будет выглядеть достаточно просто:
    1) Проверяем наличие файла с топом игроков в выбранном месте.
    2) Если не нашли - грузим из jar файла.

    И да - зачем тебе топ игроков? Если ты хочешь, что бы игроки из разных мест мерились силушкой богатырской - тебе необходимо этот топ хранить централизованно - например на едином сервере. Если хранение строго локально - генерируй выдуманный топ при первом запуске рядом с jar-файлом и обновляй по мере совершения игр.
    Ответ написан
    1 комментарий
  • Как передавать параметры через командную строку в автотесты на java?

    TheKnight
    @TheKnight
    Программист
    QaTools Properties

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

    Для локальной отладки можно перезаписать текущие значения при помощи properties-файлика.
    Ответ написан
    Комментировать
  • Как эмулировать тап на экране или клик мыши?

    TheKnight
    @TheKnight
    Программист
    Зависит от степени приемлемого геммороя. К примеру можно посмотреть на Appium. Или углубиться в UIAutomator. Это так, навскидку.
    Ответ написан
  • Что нужно изучать, чтобы заниматься автотестированием web-приложений на Java?

    TheKnight
    @TheKnight
    Программист
    Selenium + HtmlElements + jUnit (киллер фича - TestRules) + Allure для красивых репортов + матчеры. В блоге Яндекса есть статьи про HtmlElements и матчеры. Для инжекции зависимостей рекомендую Guice. Ну или не инжектить их вовсе.
    Начать стоит со связки Selenium + jUnit, затем добавить HtmlElements, паралельно разобравшись с матчерами. Ну и завершить это Allure-репортом.
    Ответ написан
    Комментировать
  • Как передать экземпляр класса Long по ссылке?

    TheKnight
    @TheKnight
    Программист
    Вы немножко путаете рамсы божий дар и яичницу изменение объекта по ссылке и изменение ссылки. Конкретно в вашем случае вы создаете новый объект и присваиваете ссылку именно на него.

    Кроме того, Long является неизменяемым. У вас в любом случае ничего бы не получилось.

    Если уж вам сильно надо менять содержимое некоего поля в main из метода класса - придется использовать самописные холдеры.
    Тык!
    class Test {
        public static void main(String[] args) {
            LongHolder holder = new LongHolder(0L);
            System.out.println(holder);
            updateValue(holder, 150L);
            System.out.println(holder);
        }
    
        private static void updateValue(LongHolder holder, Long newValue) {
            holder.setValue(newValue);
        }
    
        private static class LongHolder{
    
            private Long value;
    
            public LongHolder(Long value) {
                this.value = value;
            }
    
            public Long getValue() {
                return value;
            }
    
            public void setValue(Long value) {
                this.value = value;
            }
    
            @Override
            public String toString() {
                return "LongHolder{" +
                        "value=" + value +
                        '}';
            }
        }
    }

    Ответ написан
    2 комментария
  • Библиотека численных методов. Какой инструмент выбрать?

    TheKnight
    @TheKnight
    Программист
    NumPy + SciPy. Посмотри, вокруг чего они сделаны. Внутри у них как раз таки сишные библиотеки.

    Java поддерживает IEEE 754. Или вы про какой то другой стандарт?
    Рекомедую так же прочитать про strictfp.
    Влияние GC на вычисления можно уменьшить при правильной работе с памятью и выделяемыми ресурсами.

    P.S.: Нет такого языка - C/C++. Есть два отличающихся языка - C и C++. И C на данный момент уже лет 15-20 как не является подмножеством C++.
    Ответ написан
    Комментировать
  • Какие библиотеки существуют для разработки десктопного приложения на Java?

    TheKnight
    @TheKnight
    Программист
    QT Jambi
    Ответ написан
    Комментировать
  • Какую книжку прочесть где хорошо описывается Java многопоточность?

    TheKnight
    @TheKnight
    Программист
    Блог Алексея Шипилёва Правда это уже для продвинутых.
    Ответ написан
    Комментировать
  • Как понять странный дженерик?

    TheKnight
    @TheKnight
    Программист
    Думаю, вам стоит обратить внимание на видео Александра Маторина про Generic'и в Java.
    Тыц!
    Ответ написан
    Комментировать
  • Собираются ли в .jar (Maven) классы фреймворка, которые не используются?

    TheKnight
    @TheKnight
    Программист
    По умолчанию Maven не упаковывает классы из библиотек в итоговый jar. Есть ряд плагинов, которые позволяют добиться упаковки классов из используемых библиотек или же jar файлов библиотек целиком. Для выделения только нужных классов так же есть отдельные плагины.
    Ответ написан
    Комментировать
  • Java. Как отпимизировать работу программы?

    TheKnight
    @TheKnight
    Программист
    Во первых - вам нет необходимости хранить все перестановки в памяти компьютера. Их можно скидывать на диск, сразу после генерации. Но не факт.
    Во вторых - возможно, вам нужен алгоритм Нарайны.
    В третьих - далеко не везде нужен ArrayList. Во многих ситуациях вы можете обойтись массивом фиксированной длины. Например, для хранения текущей перестановки.
    В четвертых - если у вас так много генерируется перестановок - есть шанс, что они и в хэшсет не влезут. Думается мне, вам стоит задуматься о сортировке и фильтрации во внешней памяти.
    В пятых - существуют ли ограничения по используемой памяти и общему времени работы?
    В шестых - если вы воспользуетесь алгоритмом Нарайны - вы сможете сэкономить память на хранение результата в некоторых случаях. Подсказка - посмотрите на мультимножество вида {1^10, 2^1} с 11 неуникальными и двумя уникальными перестановками и предположите, сколько из этих перестановок будут храниться в HashSet.

    P.S.: А язык вывода у вас украинский или белорусский? Слово "мультимножина" стоит запомнить. Кроме того, вам нет необходимости использовать printf, там, где достаточно написать println(s). А вот там, где printf пригодился бы - вы используете println. Сравните со своим кодом.
    String s = "----------------------------------------";
    System.out.println(s);
    System.out.printf("Всього можливих комбінацій: %d ",count);
    System.out.println(s);
    long timeSpent = System.currentTimeMillis() - startTime;
    System.out.printf("програма виконувадась %f секунд", (timeSpent*10e-6));
    Ответ написан
    Комментировать
  • Как ускорить обработку??

    TheKnight
    @TheKnight
    Программист
    TreeSet вместо ArrayList с кастомным компаратором? Но это в случае если нет завязок на порядок вставки. Для многопоточного случая есть аналогичные структуры данных.
    Ответ написан
  • Как лучше организовать очередь отложенной обработки изображений?

    TheKnight
    @TheKnight
    Программист
    1) RabbtiMQ|Kafka|ActiveMQ|whatever. Кладем в очередь сообщения на обработку, помним про ограничения на размер сообщения.
    2) Самописное решение на костылях и скотче, с использованием БД.
    3) Сделать развязку в виде сервиса хранения данных и рест интерфейса. PHP принимает изображение, сохраняет, посылает рест запрос на обработку сообщения лежащего на сервере. ЛБ динамически распределяет запросы по молотилкам.
    4) Any variants.

    Но на самом деле есть вопрос. А много ли тех изображений? Может и не стоит заморачиваться-то?
    Ответ написан
    2 комментария
  • Как в Jmeter сравнить значение переменной с каким-то эталонным?

    TheKnight
    @TheKnight
    Программист
    Assertion пробовали?
    Возможно это вам поможет.
    Ответ написан
    Комментировать