Форум программистов, компьютерный форум, киберфорум
Java для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.73/11: Рейтинг темы: голосов - 11, средняя оценка - 4.73
0 / 0 / 0
Регистрация: 14.12.2020
Сообщений: 35

Ошибка Cannot assign field "name" because "scoreArray[j]" is null

11.01.2021, 21:26. Показов 2171. Ответов 2
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте, программа выдает ошибку: Cannot assign field "name" because "scoreArray[j]" is null.
Вот код метода:
Code
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
    public void ifTouchDown(){
        String scoreName="";
        int scoreScore=0;
        int i=0;
        String userName="";
        class scorePerson{
            String name;
            int score;
        }
        scorePerson scoreArray[] = new scorePerson[10];
 
        if(checkIfTouchDown()){
            if(figureY==1)
            {
                JOptionPane.showMessageDialog(null,"Game over!");
                // Проверка, попал ли в рекорды
                try(DataInputStream dis = new DataInputStream(new FileInputStream("score.bin"))) {
                    for (i = 0; i < 10; i++)
                    {
                        scoreName=dis.readUTF();
                        scoreScore=dis.readInt();
                        if(score>scoreScore)
                        {
                            userName=JOptionPane.showInputDialog("Введите имя");
 
                            break;
                        }
                    }
                }
                catch(IOException ex){
 
                    System.out.println(ex.getMessage());
                }
                try(DataInputStream dis = new DataInputStream(new FileInputStream("score.bin"))) {
                    int j=0;
                    while(j<10) {
                        if (j == i) {
                            scoreArray[j].name = scoreName;
                            scoreArray[j].score = scoreScore;
                        } else {
                            String nm = dis.readUTF();
                            int sc = dis.readInt();
                            scoreArray[j].name = nm;
                            scoreArray[j].score = sc;
                        }
                        j++;
                    }
                }
                catch(IOException ex){
                    System.out.println(ex.getMessage());
                }
                try(DataOutputStream dos = new DataOutputStream(new FileOutputStream("score.bin")))
                {
                    for(i=0;i<10;i++) {
                        dos.writeUTF(scoreArray[i].name);
                        dos.writeInt(scoreArray[i].score);
                    }
                }
                catch(IOException ex){
 
                    System.out.println(ex.getMessage());
                }
                return;
            }
            putFigureToField();     // Оставление фигуры на поле
            checkFillLine();        // Проверка, заполнена ли какая-нибудь линия
            newFigure();
            quickMoveDown=false;    // Если было быстрое падение - отключить
            score+=5;
        }
    }
И еще почему-то если делать не
Code
1
2
3
4
                            String nm = dis.readUTF();
                            int sc = dis.readInt();
                            scoreArray[j].name = nm;
                            scoreArray[j].score = sc;
а просто сразу присвоить:
Code
1
2
                            scoreArray[j].name = dis.readUTF();
                            scoreArray[j].score = dis.readInt();
то программа при запуске зависает.

Добавлено через 18 минут
Ошибка на строке
Code
1
scoreArray[j].name = scoreName;
0
Лучшие ответы (1)
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
11.01.2021, 21:26
Ответы с готовыми решениями:

Exception in thread "main" java.lang.NullPointerException: Cannot assign field "fio" because "w[i]" is null
Здравствуйте, помогите исправить ошибку в коде, переписывал код с C# Ошибка: Exception in thread &quot;main&quot;...

Cannot Assign Instance Of X To Field X Of Type X
В хПаге использую пару своих java бинов. Часто, после внесения какого-либо самого невинного изменения в хПаге, в броузере вижу такая...

Warning: Field is never assigned to, and will always have its default value null
Добрый день, помогите, пожалуйста, разобраться с ошибкой. using System; using System.Collections.Generic; using...

2
 Аватар для 3C_273
42 / 29 / 14
Регистрация: 09.06.2018
Сообщений: 147
11.01.2021, 21:31
Лучший ответ Сообщение было отмечено Aloisa как решение

Решение

Ты создал(а) массив классов, но не создал(а) экземпляр для каждого класса. Поэтому компилятор пишет, что значение элемента массива null
Для исправления ошибки сделай в начале цикл в котором ты создаёшь экземпляр каждого класса

Код примерно такой:

Java
1
2
3
for(int i=0;i<scoreArray.length;i++) {
scoreArray[i] = new scorePerson();
}
1
0 / 0 / 0
Регистрация: 14.12.2020
Сообщений: 35
11.01.2021, 21:56  [ТС]
Спасибо! А я думала, экземпляры должны автоматически создаваться.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
11.01.2021, 21:56
Помогаю со студенческими работами здесь

Ошибка "A field initializer cannot reference the non-static field, method, or property"
Здравствуйте,объясните пожалуйста,почему возникает ошибка:&quot;A field initializer cannot reference the non-static field, method, or property...

Exception in thread "main" java.lang.NullPointerException: Cannot assign field "nameTeacher" because "teachers[0]" is nu
Нужна помочь по заданию Выводит Exception in thread &quot;main&quot; java.lang.NullPointerException: Cannot assign field &quot;nameTeacher&quot;...

Метод из Lodash _.assign() один в один как нативный Object.assign(), вопрос - для чего тогда он создан?
метод из Lodash _.assign() один в один как нативный Object.assign(), вопрос- для чего тогда он создан? (Подозреваю что в Lodash он появился...

Ошибка в запросе jpql : null java.lang.NullPointerException: null
Модель public class test { private String code; //Номенклатурный номер private String description; // ТМЦ private...

Ошибка Can't Assign to Array
При решении систем уравнений методом обратной матрицы с помощью функции Excel возникает ошибка Can't Assign to Array,матрица(2 на 1),...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Новые блоги и статьи
Krabik - рыболовный бот для WoW 3.3.5a
AmbA 21.03.2026
без регистрации и смс. Это не торговля, приложение не содержит рекламы. Выполняет свою непосредственную задачу - автоматизацию рыбалки в WoW - и ничего более. Однако если админы будут против -. . .
Программный отбор значения справочника
Maks 21.03.2026
Процедура ВодителиНачалоВыбора(Элемент, ДанныеВыбора, ВыборДобавлением, СтандартнаяОбработка) / / Отключаем стандартную обработку (стандартное открытие формы выбора без фильтров) . . .
Переходник USB-CAN-GPIO
Eddy_Em 20.03.2026
Достаточно давно на работе возникла необходимость в переходнике CAN-USB с гальваноразвязкой, оный и был разработан. Однако, все меня терзала совесть, что аж 48-ногий МК используется так тупо: просто. . .
Оттенки серого
Argus19 18.03.2026
Оттенки серого Нашёл в интернете 3 прекрасных модуля: Модуль класса открытия диалога открытия/ сохранения файла на Win32 API; Модуль класса быстрого перекодирования цветного изображения в оттенки. . .
SDL3 для Desktop (MinGW): Рисуем цветные прямоугольники с помощью рисовальщика SDL3 на Си и C++
8Observer8 17.03.2026
Содержание блога Финальные проекты на Си и на C++: finish-rectangles-sdl3-c. zip finish-rectangles-sdl3-cpp. zip
Символические и жёсткие ссылки в Linux.
algri14 15.03.2026
Существует два типа ссылок — символические и жёсткие. Ссылка в Linux — это запись в каталоге, которая может указывать либо на inode «файла-ИСТОЧНИКА», тогда это будет «жёсткая ссылка» (hard link),. . .
[Owen Logic] Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора
ФедосеевПавел 14.03.2026
Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора ВВЕДЕНИЕ Выполняя задание на управление насосной группой заполнения резервуара,. . .
делаю науч статью по влиянию грибов на сукцессию
anaschu 13.03.2026
прикрепляю статью
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru