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

    @WaterSmith
    Android-разработчик. Java, Kotlin
    String imgName;
    
    for(byte i=0; i<arrayImages.size();i++) {
    	
    	imgName = arrayImages.get(i).getOriginalFilename().toLowerCase();
    	
    	if (!(imgName.contains("s-1.") || imgName.contains("s-2.") || 
    		imgName.contains("s-3.") || imgName.contains("s-4."))) {
    			if (imgName.isBlank())
    				removeSlide(i);
    			else {
    				imgName = setCorrectName(imgName, i);
    				if (imgName!=null) {
    					// что-то делаем
    				}
    			}
    	}
    	// ничего не делаем 
    }


    и если бы сделать так, что setCorrectName не будет возвращать null (как вообще функция с таким именем может это сделать?) то еще оду проверку можно выкинуть.
    Ответ написан
    5 комментариев
  • Почему я получаю NullPointerException?

    @WaterSmith
    Android-разработчик. Java, Kotlin
    mediaProjection = mediaProjectionManager.getMediaProjection(Activity.RESULT_OK, null);

    очевидно что здесь у вас в результате mediaProjection = null
    в документации к методу getMediaProjection написано:

    Parameters
    resultCode int: The result code from onActivityResult(int, int, Intent).
    resultData Intent: The result data from onActivityResult(int, int, Intent). This value cannot be null.

    т.е. вторым параметром должен быть интент, и прямо сказано что он не может быть null, а вы таки ему пытаетесь подсунуть null.
    Ответ написан
    2 комментария
  • Как сделать несколько вариантов типизации в одной переменной?

    @WaterSmith
    Android-разработчик. Java, Kotlin
    Нет, не возможно, Java - язык со строгой типизацией.
    Резервировать переменную, не зная заранее что ты туда будешь ложить - странно, а если знаешь, значит знаешь какого оно может быть типа.
    Справедливости ради, всегда есть тип Object от которого унаследовано всё.
    Ответ написан
    4 комментария
  • Что делать, если я захожу на майнкрафт сервер и мне выдает эту ошибку?

    @WaterSmith
    Android-разработчик. Java, Kotlin
    "An existing connection was forcibly closed by the remote host." переводится как "Существующее соединение было принудительно закрыто удаленным хостом."
    Это может означать, например, что сервер больше не работает, или вас на нем забанили.
    Ответ написан
    5 комментариев
  • Как вызвать нестатическую функцию Kotlin из статического класса Java?

    @WaterSmith
    Android-разработчик. Java, Kotlin
    Ваш MQTT-класс должен вызвать handleMqttMessage() у какой-то конкретной MainActivity, следовательно, в ваш статический метод MQTT-класса нужно передать эту активити, например в параметре вызываемого метода.
    А вызывая таким образом:
    new MainActivity().handleMqttMessage();
    вы создаете активити неестественным образом вне жизненного цикла, и даже если бы так можно было делать, то что вам даст вызов handleMqttMessage у только что созданной активити, а не у той, которая запущена?
    Ответ написан
    Комментировать
  • Почему не отправляется файл через post запрос?

    @WaterSmith
    Android-разработчик. Java, Kotlin
    Ну, в коде ты все таймауты выставил в 10 секунд. Значит, либо файл не успевает отправиться за 10 секунд, либо что-то не так с сервером. Может быть сервер вообще не отвечает.
    И не поленись, возьми на вооружение Retrofit, во первых это стандарт в отрасли, во вторых, с ним намного проще делать http запросы.
    Ответ написан
    Комментировать
  • Как удалять содержимое edittext?

    @WaterSmith
    Android-разработчик. Java, Kotlin
    myEditText.setText("");
    Ответ написан
    Комментировать
  • Как сделать что бы добавлялась информация в JSON файл а не удалялась старая и записывалась новая?

    @WaterSmith
    Android-разработчик. Java, Kotlin
    У меня есть утилитный метод который записывает информацию в JSON из модели.
    public static void convertModelToJson(Object className, String titleFile) {
            ObjectMapper mapper = new ObjectMapper();
            mapper.enable(SerializationFeature.INDENT_OUTPUT);
            try {
                mapper.writeValue(new File(baseFile + titleFile), className);
            } catch (IOException e) {
                e.printStackTrace();
            }
        }


    При каждом вызове этого метода создается новый файл и записывается вместо предыдущего, как можно было ожидать, что оно будет добавлять данные в конец? Ну да ладно, это вопрос риторический.
    Я бы посоветовал заполять JSON в процессе работы, а сохранять его уже когда работа будет закончена.
    Если нужно дополнять файл между сеансами работы с программой - открывайте и парсите его при старте.
    И да, если вам правда нужно будет работать с одним файлом в разных сеансах, то подумайте про БД, как вам посоветовал Денис Загаевский
    Ответ написан
    Комментировать
  • Как найти и напечатать самое большое число из текстового файла?

    @WaterSmith
    Android-разработчик. Java, Kotlin
    нужно запоминать три максимальных стоимости (по планшету, пк и ноутбуку), с соответсвующими строками.
    читаем строку, определяем, у нас строка с планшетом, ноутбуком или пк, сравниваем стоимость в этой строке, со стоимостью ранее считанной (0 - если ранее небыло строк), если наша стоимость больше, запоминаем её, и соответствующую строку, если меньше - просто читаем следующую.
    Когда все строки в файле кончились, сравниваем полученные максимальные итоги ноутбука планшета и пк. Если они все одинаковые - выводим их все, если разные, выводим максимальный.
    Надеюсь достаточно подробно расписал, и теперь вам понятно как это реализовать, можете писать код.
    Ответ написан
    1 комментарий
  • Ошибка on a null object reference в андроид студио, как исправить?

    @WaterSmith
    Android-разработчик. Java, Kotlin
    у вас в onEvent параметр value отмечен как Nullable, т.е. подразумевается, что туда может прилететь null
    Тем не менее, вы смело дергаете value.getDocumentChanges() безо всяких проверок.
    Естественно, в ситуации когда в onEvent таки прилетает null у вас всё падает.
    Ответ написан
    4 комментария
  • Как из переменной парсить текст java?

    @WaterSmith
    Android-разработчик. Java, Kotlin
    Можно использовать регулярку, что-нибудь вроде: JSESSIONID=(.*?);
    Можно тупо в лоб, найти вхождение "JSESSIONID=", затем взять подстроку, и в ней найти первое вхождение ";" - подстрока между ними и будет нужной.
    А можно разбить строку на массив, по ";", затем каждый элемент массива разбить на две части, до "=" и после, и сложить в хешмапу, таким образом получим возможность манипулировать данными через ключ- знечение.
    Ответ написан
  • Почему класс хранит 3 объекта?

    @WaterSmith
    Android-разработчик. Java, Kotlin
    Речь о том, что Holder2 может сохранить и вернуть объект любого типа, благодаря тому, что все объекты являются наследниками класса Object.
    h2.set("Not an Automobile")
    Сохраняет в холдере строку - объект типа String
    h2.set(1)
    Сохраняет в холдере 1 - которая сохраняется там как Integer
    И да, вы всё правильно понимаете, предыдущие значения мы теряем.
    Фразу
    хранит объекты трех разных типов
    нужно понимать, как "сохраняет" (в приведенном примере в один класс Holder2 сохранялись объекты трех разных типов), но хранился в каждый момент времени только один.
    Из-за таких ошибок перевода и рекомендуют читать книги по программированию на языке оригинала.
    Ответ написан
    Комментировать
  • Что за конструкция?

    @WaterSmith
    Android-разработчик. Java, Kotlin
    public static final Person NULL = new NullPerson();

    Объявление публичного статического поля NULL, типа Person инициализированного объектом типа NullPerson.
    Объект NullPerson, судя по всему является дочерним объектом класса Person, имплементирующим интерфейс Null
    О чем и сказано в тексте.
    Ответ написан
  • Как реализовать проверку четырехугольника на вырожденность в Java?

    @WaterSmith
    Android-разработчик. Java, Kotlin
    Чтобы определить, лежат ли четыре точки на одной прямой, нужно проверить, совпадают ли прямые, проведенные через каждую пару точек. Подробности по ссылке:
    mathprofi.ru/zadachi_s_pryamoi_na_ploskosti.html
    Ответ написан
    Комментировать
  • На каком этапе изучения Java стоит переходить на Kotlin Android?

    @WaterSmith
    Android-разработчик. Java, Kotlin
    Вы так спрашиваете, будто после перехода на Котлин, все источники информации о Java для вас закроются. Если будет чего-то не хватать, всегда ведь можно вернуться.
    А по существу вопроса: да можно переходите.
    Ответ написан
    2 комментария
  • Как сделать правильное сравнение?

    @WaterSmith
    Android-разработчик. Java, Kotlin
    Когда у тебя EditText содержит пустую строку, получается что ты делаешь
    Integer.parseInt("");
    В результате чего получается null
    Поскольку null нельзя присвоить примитивному типу int то при попытке это сделать у тебя возникает NullPointException - для пользователя это выглядит будто программа просто сама закрылась.
    У тебя два выхода:
    1. Отловить этот NullPointException с помощью try catch
    2. Присваивать не примитивному типу int, а объектному Integer, а затем после присвоения проверит, результат на не равенство null
    Не зависимо от способа, либо в catch либо в else переприсваешь значение перемнной на 0, ну или выдешь ошибку, в зависимости от того, чего там требует логика твоей программы.
    Ответ написан
    Комментировать
  • Как использовать неинициализированные переменные в методе кнопки?

    @WaterSmith
    Android-разработчик. Java, Kotlin
    Переменные конечно использовать можно. Жаль что вы не указали ошибку, которая у вас возникает.
    Лучше так не пишите:
    first_array = new Integer[Integer.parseInt(textField.getText())][Integer.parseInt(textField2.getText())];.

    И сами путаетесь и другим читать тяжело, и при отладке куча проблем.
    Так пишите:
    int rowSize = Integer.parseInt(textField.getText());
    int columnSize = Integer.parseInt(textField2.getText());
    if (rowSize>0 && columnSize>0) {
        first_array = new Integer[rowSize][columnSize]; 
    }
    Ответ написан
  • Как вызвать private метод в Fragmente Android Studio?

    @WaterSmith
    Android-разработчик. Java, Kotlin
    В методе onCreateView, вместо
    EditText editTextEmail = (EditText) v.findViewById(R.id.email);
            EditText editTextPassword = (EditText) v.findViewById(R.id.password);

    Нужно
    editTextEmail = (EditText) v.findViewById(R.id.email);
            editTextPassword = (EditText) v.findViewById(R.id.password);

    Поясню:
    У вас в пределах класса объявлены переменные private EditText editTextEmail, editTextPassword;
    Затем, в методе onCreateView, вы при присвоении им значений, перед именем переменной пишете EditText Таким образом вы объявляете новые переменные, в пределах видимости метода, а переменные класса остаються неинициализированными, т.е. null.
    Затем, после вызова, в методе userLogin у вас происходит обращение к переменной editTextEmail.getText() но, editTextEmail содержит null и такое обращение вызывает Null Point Exeption что для пользователя выглядит как просто закрытие приложения.
    И не факт, что это единственная ошибка.
    Ответ написан
    Комментировать
  • Ошибка java в Android приложении?

    @WaterSmith
    Android-разработчик. Java, Kotlin
    При чем тут тег JAVAFX, если речь идет об Андроид приложении? Или если не об Андроид, тогда почему Андроид упомянут в заголовке?
    Что касается ответа на вопрос, то его способен дать даже гугл-переводчик, вот что он нам сообщает:
    Ошибка нехватки памяти: Не удалось выделить 83886328 байтов с 25165824 свободными байтами и 46 МБ до OOM, целевой размер 245232608, предел роста 268435456

    Другими словами, вашему приложению понадобилось 83 мегабайта памяти, при этом свободно у вас всего 25 мегабайт.
    Ответ написан
  • Как перемещать увеличенную картинку?

    @WaterSmith
    Android-разработчик. Java, Kotlin
    Ну, смотрите, у вас в свойствах картинки
    android:scaleType="centerCrop"
    И размеры "match_parent" - при таком раскладе, там нечего перемещать, всё уже обрезалось и за пределами экрана ничего нет.
    Попробуйте например поместить картинку в ScrollView с включенным горизонтальным и вертикальным скроллом, и установить размеры "wrap_content" у ImageView, а у родительского ScrollView "match_parent".
    Ответ написан
    2 комментария