• Как подсчитать письма с помощью Selenium/Java?

    rstJkee
    @rstJkee
    Извини, что абстрактно, потому что код бы всё равно невероятно сильно отличался, так как я последний раз на селениуме работал в питоне

    1. Так как почта скорее всего построена на фреймворке (react/vue/angular), то она строит элементы динамически, следовательно твоим 1 шагом должно быть то, что ты в драйвере должен выставить некоторый wait/until. То есть ты должен подождать, пока прогрузится страница
    // Ждём, пока не будет элемента с name = q
    WebElement foo = new WebDriverWait(driver, Duration.ofSeconds(3))
              .until(driver -> driver.findElement(By.name("q")));

    2. Так как ты подождал загрузку в первом пункте, то тебе можно отказаться от xpath`ов и пользоваться нормальными селекторами (https://www.selenium.dev/documentation/webdriver/l...). Собственно, можно и с ними, но в почте множество повторяющихся элементов с одинаковыми классами => брать их через xpath - очень больно, так как у них у всех xpath будет разный, а => выстроить динамику в цикле будет трудно
    3. Через эти селекторы ты уже сможешь получать всю информацию на странице, которую можно обходить в цикле/сортировать/фильтровать и прочее (там уже и stream api джависткий можно юзать и прочее, и прочее)
    Ответ написан
    2 комментария
  • Как посчитать каждый элемент?

    sergey-gornostaev
    @sergey-gornostaev Куратор тега Java
    Седой и строгий
    Перенести объявление переменной счётчика в тело внешнего цикла.
    Ответ написан
    1 комментарий
  • Что нужно изучить чтобы писать красивые приложения под Android?

    BorLaze
    @BorLaze
    Java developer
    Посмотрел "Доктор Хаус".
    Возник вопрос, что нужно изучить, чтобы делать красивые операции на сердце?
    Ответ написан
    Комментировать
  • Как правильно отпарсить веб-страницу через Jsoup?

    sergey-gornostaev
    @sergey-gornostaev Куратор тега Java
    Седой и строгий
    Запустите отладчик и посмотрите какие данные обрабатываются в момент возникновения ошибки. Вероятно, интересующие вас цифры формируются javascript'ом, а поэтому для JSoup их на странице нет.
    Ответ написан
    Комментировать
  • Какова причина появления ошибки An attempt was made to call a method that does not exist?

    @n199a Автор вопроса
    Java
    Нашел, в `pom.xml` были несоответствия в версиях подключаемых библиотек. У меня было:
    <dependency> <!-- For annotations -->
                    <groupId>org.springframework</groupId>
                    <artifactId>spring-context</artifactId>
                    <version>5.3.12</version>
    </dependency>


    А надо:
    <dependency> <!-- For annotations -->
                    <groupId>org.springframework</groupId>
                    <artifactId>spring-context</artifactId>
                    <version>5.3.10</version>
    </dependency>
    Ответ написан
    Комментировать
  • Что лучше выучить, Java или C#?

    saboteur_kiev
    @saboteur_kiev
    software engineer
    Парень,
    Востребованы не сами языки, а специалисты, которые на этих языках умеют работать.

    И учить нужно будет настолько много, что ты должен не на медиану смотреть, а на себя - что тебе ближе. Потому что в процессе обучения, ты еще не раз будешь лезть на стену и кричать зачем я в это гребаное ИТ полез.

    Лично у тебя должна душа лежать к технологии, чтобы не забросить ее через месяц, через год, через 5 лет, через 30 лет.

    Зачем ты спрашиваешь у рандомов из интернета? Уровень джуниора это тонны знаний, и это очень очень минимальный объем, который позволяет джуну с джава переключится на джуна C# довольно быстро, и вдобавок получив взгляд со стороны. Поэтому пока ты лазишь по hh, конкуренты уже пишут свой первый проект.
    Ответ написан
    5 комментариев
  • Почему разработчики на Java более востребованы, чем разработчики на C#?

    firedragon
    @firedragon
    Не джун-мидл-сеньор, а трус-балбес-бывалый.
    Шарпы и ява где то на уровне , подколки с обоих сторон насчёт ущербности языка есть . Например скачайте оракл jdk. Ява субъективно жрет память шарпы сейчас подтянулись причём это сейчас около 5 лет. Тут и Юнити и хамарин и нет коре 3 который скоро станет 5. Хорошую поддержку кстати сделал джетбраин вычистил эти конюшни и сделал Котлин. В общем разница невелика.
    Ответ написан
    Комментировать
  • Что лучше выучить, Java или C#?

    twobomb
    @twobomb
    Пфф, тоже мне проблема, выучи все. Никогда не понимал людей которые пытаются зациклится на чём-то одном, попробуй всё и если что-то понравится развивайся в этом. Ну два это мало, нужно больше.
    Ответ написан
    Комментировать
  • Аналог use(express node.js) для проброса на контроллеры в spring?

    @twolegs
    Насколько я понимаю, аналогом экспрессовких мидлвар в спринге будут интерсепторы:
    https://docs.spring.io/spring-framework/docs/curre...
    Ответ написан
    Комментировать
  • Как внутри устроена HashMap, она использует singly linked list или BTS?

    @temp_temp
    Бакеты хранят внутри себя ноды в форме односвязного списка, но как только количество нод достигает 8 (константа TREEIFY_THRESHOLD = 8) и количество бакетов достигает 64 (константа MIN_TREEIFY_CAPACITY = 64), произойдет переход к древовидной структуре в этом бакете. Но возможен и обратный переход из древовидной структуры в односвязный список. Это происходит, когда количество нод в этом бакете сокращается до 6 (константа UNTREEIFY_THRESHOLD = 6), например при увеличении ёмкости хэш-таблицы (количеста бакетов). В этот момент происходит перехеширование всех элементов. Но есть ещё один интересный момент. Допустим вы переопределили хэшкод, чтобы тот возвращал одно и то же значение. И как не трудно догадаться все элементы будут попадать в один бакет. Изначально 16 бакетов, если добавить 9 нод и все они попадут в один бакет, то мапа расширится до 32, если не произойдет распределение, то при добавлении 10 ноды - расширится до 64. И вот если снова не произошло распределения и 11 ноду добавить в тот же бакет, то этот бакет перестроится в дерево.
    Ответ написан
    Комментировать
  • Нормально ли использовать Object в сигнатуре метода не дженерика?

    sergey-gornostaev
    @sergey-gornostaev Куратор тега Java
    Седой и строгий
    Не нормально. Во-первых, глупо использовать язык со статической типизацией и не пользоваться её преимуществами. Во-вторых, "взять у объекта параметр с проверкой на наличие" видимо обозначает использование рефлексии, что медленно и небезопасно.
    Ответ написан
    2 комментария
  • Как получить размер строкового массива?

    BorLaze
    @BorLaze
    Java developer
    Это не случайное значение из массива. Это массив всех строк в modelOfPersonalComputersStringArray.

    Если нужна одна случайная строка, то надо потом взять
    Random random = new Random();
    String s = tempArray[ random(tempArray.length) ];
    Ответ написан
    1 комментарий
  • Maven и устаревшие зависимости. Как задать нужную версию?

    BorLaze
    @BorLaze
    Java developer
    Попробуй исключить обновленные модули из спринговых зависимостей.
    Примерно так:
    <dependency>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-starter-data-jpa</artifactId>
                <exclusions>
                    <exclusion>
                        <groupId>org.apache.tomcat</groupId>
                        <artifactId>tomcat-jdbc</artifactId>
                    </exclusion>
                    <exclusion>
                        <groupId>org.hibernate</groupId>
                        <artifactId>hibernate-core</artifactId>
                    </exclusion>
                    <exclusion>
                        <groupId>org.hibernate</groupId>
                        <artifactId>hibernate-entitymanager</artifactId>
                    </exclusion>
                </exclusions>
            </dependency>
    Ответ написан
    1 комментарий
  • Следует ли использовать геттеры и сеттеры внутри самого класса?

    leahch
    @leahch
    3D специалист. Dолго, Dорого, Dерьмово.
    Правильнее конечно же через геттеры-сеттреры, так как изначально предполагалось, что есть только одна точка контроля - геттер/сеттер.
    С другой стороны - все на усмотрение разработчика, можно и напрямую к полю.
    Ответ написан
    3 комментария
  • Как найти остаток от деления чисел с помощью сложения и вычитания?

    @rPman
    берем делитель и складываем с самим собой (т.е умножаем на 2), затем полученное число снова складываем.. до тех пор пока результат не станет больше делимого числа (эту сумму не запоминаем, берем предыдущую)
    затем на выбор:
    * из разницы делимого и текущей суммы, в цикле вычитаем делитель, пока результат не станет меньше нулдя (предыдущий и будет остатком)
    * в процессе подсчета суммы делителя промежуточные результаты (массив из n элементов, каждый y*2*n) из разницы делимого вычитаем предыдущую сумму, если результат меньше нуля, не запоминаем результат и переходим к следующей промежуточной сумме, так до тех пор пока не пройдем по всем сохраненным суммам. Последним пробуем вычесть сам делитель.

    этот алгоритм заметно эффективнее просто тупого вычитания делителя, второй вариант еще более эффективный но потребляет память log(x)
    Ответ написан
    Комментировать
  • Как правильно обратиться к переменной?

    jamakasi666
    @jamakasi666 Куратор тега Java
    Просто IT'шник.
    Еле кровь с глаз и клавиатуры оттер.
    У вас крайне бесполезная мешанина, кратко что не так:
    1) static нужно избегать всеми возможными путями. Представьте что у вас будет если вы захотите создать еще один экземпляр Field, они будут мешать друг другу.
    2) Класс Field не несет практического смысла т.к. все что можно и нельзя static.
    3) Класс должен выполнять максимально возможную "узкую" логику
    4) Что ,s общаться с классами нужно использовать getЧтоТо для получения и setЧтоТо для задания параметров и действий.
    5) Давайте максимально осмысленные названия всему, но без фанатизма

    Если не совсем полностью правильно но пока еще просто(без интерфейсов и фабрик) максимально близко к вашему должно быть как то так:
    public class Main {
        public static void main(String[] args) {
            Scanner len=new Scanner(System.in);
            System.out.println("Введите размерность матрицы");
            int lengh = len.nextInt();
            Field field1 = new Field(lengh);
            System.out.println(field1.toString()());
            System.out.println(field1.getDeterminant());
    }

    И класс сам:
    public class Field {
        private int lgth;
        private int a[][];
        public Field(int lengh){
            lgth = lenght;
            a=new int[lgth][lgth];
            for (int i=0;i < a.length-1;i++){
                for (int j=0;j < a[i].length-1;j++){
                    a[i][j]=(int)(Math.random()*10);
                }
            }
        }
    
        public int getDeterminant(){
            switch(lght):
    		case 1: return determinant1();
    		case 2: return determinant2();
    		case 3: return determinant3();
    		default: return -1; //Если не реализовано
        }
    	
        private int determinant1(){
            int tempdetermin = матан;
            return tempdetermin;
        }
        private int determinant2(){
            int tempdetermin = матан;
            return tempdetermin;
        }
        private int determinant3(){
            int tempdetermin = матан;
            return tempdetermin;
        }
        @Override
        public String toString(){
           String str ="";
           for (int i=0;i < a.length-1;i++){
                for (int j=0;j < a[i].length-1;j++){
                    str+=(a[i][j]+" ");
                }
                str+="\n";
            }
            return str;
        }
    }
    Ответ написан
    1 комментарий
  • Как работать с jdbc без SSL?

    sergey-gornostaev
    @sergey-gornostaev Куратор тега Java
    Седой и строгий
    JDBC с SSL никак не связано и работу с или без SSL никак не ограничивает.
    Ответ написан
    5 комментариев
  • Как проверить имя параметра GET запроса в Sping?

    BorLaze
    @BorLaze
    Java developer
    Вот ешкин кот, я же тебе в предыдущем вопросе дал направление на почитать!

    Еще раз - что делают декларации в твоем коде:
    gift-certificates, я так понимаю, это глобальный префикс для контроллера

    @GetMapping(params = {ParameterName.SORT_BY}) означает: вызови этот метод, когда урл выглядит как gift-certificates?sort_by

    Когда урл не подходит, берется общий - @GetMapping - который отвечает за gift-certificates, поскольку все параметры после знака вопроса опциональны.

    Если же тебе надо как-то отловить параметры с произвольными именами - тогда проштудируй вот эту статью - там как раз разобраны типичные случаи (в частности, пункт 6).
    Ответ написан
  • Почему GET запрос не попадает в метод с аннотацией @GetMapping с параметрами в Spring?

    BorLaze
    @BorLaze
    Java developer
    Потому что params в @___Mapping предназначен для однозначной привязки запроса к методу.

    То есть,
    @GetMapping(params = {ParameterName.SORT_BY, ParameterName.SORT_TYPE})
    вызовется ТОЛЬКО если оба параметра присутствуют в урле. Вне зависимости, указано required = false или нет.
    Ответ написан
    Комментировать
  • Как оптимизировать данный код?

    vabka
    @vabka
    Токсичный шарпист
    1. try-catch - это дорого, и вообще предназначен он для исключительных ситуаций.
    2. Тут можно только 1 раз вызвать str.split
    int n = Integer.parseInt(str.split(" ")[0]);
                int m = Integer.parseInt(str.split(" ")[1]);

    3. Здесь нет динамического выделения памяти, так что врядли
    while(true) {  // здесь занимает больше всего ресурсов 
                        int g = 0;
                        for (int i = 0; i < acc.length; i++) {
                            g += acc[i] / pays;
                        }
                        if(g >= m) break;
                        else pays--;
                    }

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