Страница 1 из 1
Объявление массива
Добавлено: 16 авг 2013, 23:23
Mr. Nobody
Код: Выделить всё
public class Constants {
String[] Level;
Level["1"] = "otvet1";
}
Здравствуйте, скажите, пожалуйста, что в этом коде неправильно?
Гуглил по объявлению массива, это нашел, а не работает.
Re: Объявление массива
Добавлено: 17 авг 2013, 00:28
rezak90
а в книжку по джаве заглянуть нельзя?
1) массив нужно инициализировать;
2) ключём массива выступает всегда целое число а не строка "1";
Re: Объявление массива
Добавлено: 17 авг 2013, 00:33
Mr. Nobody
в java можно не задавать массиву кол-во элементов? как в php, например
Re: Объявление массива
Добавлено: 17 авг 2013, 00:51
Mr. Nobody
Вот просто скопировал с урока:
Все равно ошибка
Так не работает
Код: Выделить всё
public class Constants {
String[] Level;
Level = new String [12];
Level[1] = "otvet1";
}
Re: Объявление массива
Добавлено: 17 авг 2013, 07:53
rezak90
А здесь уже не только не знание в Java а ещё и не знание в ООП. Level это поле класса, и последующие строки после его объявления считаются как поля класса и соответственно их объявления не правильно. Почитай что такое класс!
Re: Объявление массива
Добавлено: 17 авг 2013, 09:40
Mr. Nobody
Я же не спорю, что я это знаю, я читаю урок, там так написано.
Можете написать правильный код?
Re: Объявление массива
Добавлено: 17 авг 2013, 10:00
rezak90
Mr. Nobody писал(а):Я же не спорю, что я это знаю, я читаю урок, там так написано.
Можете написать правильный код?
Код: Выделить всё
public class Constants {
private String[] level;
public Constants() {
level = new String [12];
level[1] = "otvet1";
}
}
Re: Объявление массива
Добавлено: 18 авг 2013, 03:02
Mr. Nobody
Имеется код
Constants.java
Код: Выделить всё
package com.example.kros;
public class Constants {
public static String[] Level;
public Constants() {
Level = new String [20];
Level[1] = "ответ1";
Level[2] = "ответ2";
Level[3] = "ответ3";
}
}
Я хочу брать эти переменные из другого activity, делаю так
LevelActivity.java
Код: Выделить всё
Toast.makeText(this, "Ответ - " + Constants.Level[1], Toast.LENGTH_SHORT).show();
но приложение почему-то вылетает
Re: Объявление массива
Добавлено: 18 авг 2013, 03:33
Foenix
1. нужно смотреть лог, чтоб было понятно почему вылетает
2. скорее всего в логе написано, что у тебя NPE, и скорее всего в коде ты не создаешь нигде переменную Constants, но пытаешься ею воспользоваться.
3. а написать static подсказал эклипс? или почему там у тебя static?
Re: Объявление массива
Добавлено: 18 авг 2013, 09:09
Mikhail_dev
Во-первых замечу, что нумерация для массива идет с нуля, а не с единицы. Тут нету бага на сколько я вижу, но элементы начинаются с Level[0] - у тебя данный элемент равен Null. Последний же элемент массива будет иметь индекс Level[19].
Ну а во-вторых, как уже сказали, нужен лог. Скорее всего, сам класс Constants не инициализирован. Для этого попробуй класс поменять на
[syntax=java]
package com.example.kros;
public class Constants {
public static String[] Level;
static {
Level = new String [20];
Level[1] = "ответ1";
Level[2] = "ответ2";
Level[3] = "ответ3";
}
}
[/syntax]
Re: Объявление массива
Добавлено: 18 авг 2013, 11:46
Mr. Nobody
Foenix, static это просто значит, что константа, нет?
no--, спасибо, работает.
Re: Объявление массива
Добавлено: 18 авг 2013, 12:29
Foenix
нет , не константа