Пользователь пока ничего не рассказал о себе

Достижения

Все достижения (6)

Наибольший вклад в теги

Все теги (41)

Лучшие ответы пользователя

Все ответы (88)
  • 2 вопроса по функциям. Python?

    @zelan
    Кратко обо мне не получится.
    Списки в питоне передаются по ссылке. Это значит, что передавая список в функцию, будет меняться переданный список, а не создаваться "копия" внутри функции.

    Если же ты хочешь создавать новый список, то в функцию надо передавать полную(глубокую) копию исходного списка, или создавать такую копию внутри функции и выполнять операции над ней.
    Ответ написан
    6 комментариев
  • Как исправить ошибку SLF4J: Failed to load class?

    @zelan
    Кратко обо мне не получится.
    SLF4J: Failed to load class "org.slf4j.impl.StaticLoggerBinder":
    если slf4j не нужен, то эта ошибка не влияет на работу приложения по сути.

    Эксепшн вылетает по другой причине. Покажи конфиг hibernate'a.

    Caused by: org.hibernate.MappingException: Unable to load class [ entity.Article] declared in Hibernate configuration <mapping/> entry
    Caused by: java.lang.ClassNotFoundException: entity.Article

    Судя по стектейсу в конфиге гибернейта в секции mapping объявлен класс entity.Article, которого нет (по крайней мере ты его не приложил)

    по ошибке SLF4J:

    тут в принципе все понятно.
    смотри, удали из pom.xml

    <dependency>
            <groupId> org.apache.cassandra</groupId>
            <artifactId>cassandra-all</artifactId>
            <version>0.8.1</version>
    
            <exclusions>
                <exclusion>
                    <groupId>org.slf4j</groupId>
                    <artifactId>slf4j-log4j12</artifactId>
                </exclusion>
                <exclusion>
                    <groupId>log4j</groupId>
                    <artifactId>log4j</artifactId>
                </exclusion>
            </exclusions>
    
        </dependency>


    Я так понял ты вставил этот код скопировав с сайта slf4j, если да, то он тут не нужен.

    библиотека hibernate-core - использует slf4j для того чтобы можно было подрубить любой логгер (log4j, logback и другие) и тогда гибернейт писал бы в него свои сообщения.
    то что выскакивает это сообщение - это впринципе не ошибка. Просто для данного примера не установлен логгер. Если бы он был установлен то все было бы норм.

    Однако на сайте slf4j написано что добавления в pom.xml зависимости будет достаточно чтобы этой ошибки не было.


    <dependency>
            <groupId>org.slf4j</groupId>
            <artifactId>slf4j-nop</artifactId>
            <version>1.7.13</version>
        </dependency>


    Если это не поможет, то надо просто подключить logback или log4j и сконфигурировать его. Как это сделать легко находится в нете.
    Ответ написан
  • Java или Kotlin для разработки Android приложений?

    @zelan
    Кратко обо мне не получится.
    Официальные языки - C++, Java, Kotlin. Поддержка этих языков гарантирована в Android Studio. Kotlin полностью совместим с Java. Более того в одном проекте можно одновременно использовать и Kotlin и Java. Java будет актуальна всегда.
    Ответ написан
    Комментировать
  • Объясните код из Java?

    @zelan
    Кратко обо мне не получится.
    Если в классе A не объявлен ни один конструктор, то он по умолчанию содержит конструктор без параметров - A(), однако, если объявлен хотя бы один конструктор с параметрами, то конструктор A() исчезает. Но исчезает он только тогда, когда явно не объявлен.

    Примеры
    //содержит неявно 1 конструктор A()
    class A{
    }
    
    //тоже содержит  конструктор A() но явно
    class A{
        A(){
        }
    }
    
    //cодержит СОДЕРЖИТ ТОЛЬКО 1 конструктор, конструктора A() уже нет
    class A{
        A(int x){
        }
    }
    
    //есть оба конструктора
    class A{
        A(int x){
        }
    
        A(){}
    }


    В примере класс A содержит один конструктор с параметром - A(int x), это значит, что он не имеет конструктора A(), и его нужно (при необходимости) определить самому.

    Механизм наследования таков:
    - мы хотим создать объект B, вызвав конструктор B(int b)
    - первой строкой конструктора должна быть строка super(...) - с параметрами или без, это нужно для того чтобы сначала сконструировался родитель, ведь B унаследован от A
    - если первая строка другая, то компилятор подставляет конструктор родителя без параметров - super(), в этом случае будет вызвано создание объекта A с помощью конструктора A().
    - но так как в объекте A не определен этот конструктор - вылетает ошибка

    Можно исправить так
    Либо добавить в объект A конструктор A(), либо в конструктор объекта B, добавить явный вызов конструктор родителя super(int x) ( в данном случае у родителя есть только 1 конструктор - A(int x)
    Ответ написан
    1 комментарий
  • Самостоятельное практическое задание для новичков в Java?

    @zelan
    Кратко обо мне не получится.
    книжки перед сном бесполезны, все новое нужно сразу закреплять.

    Напишите менеджер паролей для сайтов/аккаунтов.

    1) программа пишет/читает/редактирует/выводит на экран информацию об аккаутах (номер записи, сайт, логин, пароль) из файла (xml, json, любой другой формат).

    Напиши api для:
    для получения списка всех записей
    удаления записи по номеру
    изменения всех данных по номеру
    получения записи по номеру

    номер записи уникален. комбинация сайта и логина уникальна.
    Выполнять в main, консольный интерфейс не нужен.

    2) Изменить программу так, чтобы она работала с базой данный вместо файла. База H2 (режим embedded), работа с базой через JDBC. Если интересно, то можно использовать базу в режиме шифрования. Ведь пароли все таки храните.

    В идеале продумать программу так, чтобы в любой момент вы могли переключать режим файл/база, с минимальными затратами. Для этого вам надо изучить тему интерфейсов. В серьезной работе без них никак. Но скорее всего это получится не скоро. Не отчаивайтесь, со временем придет.

    3) Добавить UI, пусть будет JavaFX. Окно логина/пароля. После авторизации выводится окно с таблицей, содержащей информацию в незашифрованном виде. UI должен использовать api с предыдущих шагов. Окна для редактирования, подтверждения удаления и др.

    4) Дальше писать рано. Фреймворки рано. Работайте c IDE, изучайте возможности.

    Если не хотите писать настольное приложение, то можно написать клиент-сервер. Простейший вариант - сервлет+restapi.
    В качестве контейнера иcпользуете Tomcat. GUI на HTML/CSS/JS. Запустив приложение на tomcat, заходите на страницу, сервер(tomcat) возвращает страницу с логином, вводите логин-пароль -> ajax запрос -> получаете данные -> выводите таблицу и т.д.

    Как это все делать? Ищите в интернете, набивайте шишки и т.д.

    Это довольно сложное задание для новичка без опыта. Но это без проблем сделает любой с опытом работы в 2-3 месяца. Оно охватывает много важных тем: работа с файлами, работа с бд, работа с ui. Это минимум с которого можно начать.
    Ответ написан
    2 комментария

Лучшие вопросы пользователя

Все вопросы (2)