2011-01-18 3 views
1

В настоящее время я работаю над текстовым редактором. У меня работает весь графический интерфейс, и теперь я пытаюсь добавить к нему удобство.Назначить значение массиву в Java?

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

Пример кода:

String[] symbols = new String[42]; symbols[0] = "∑"; // Error line! 

Вот изображение: http://img401.imageshack.us/img401/4844/examplegx.png

Кто-нибудь знает решение, чтобы исправить это, или это случилось с вами? Если мне нужно предоставить более подробную информацию, дайте мне знать.

ответ

8

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

Некоторые опции:

  • сделать это в конструкторе:

    public GUI() 
    { 
        symbols[0] = "∑"; 
    } 
    
  • сделать это в инициализатор блок:

    String[] symbols = new String[42]; 
    { 
        symbols[0] = "∑"; 
    } 
    
  • сделать это в методе наречено инициализатор:

    String[] symbols = getDefaultSymbols(); 
    
    private static String[] getDefaultSymbols() 
    { 
        String[] ret = new String[42]; 
        ret[0] = "∑"; 
        return ret; 
    } 
    
  • Использование инициализатора массива:

    String[] symbols = { "∑", null, null, null, ... }; 
    

Обратите внимание, что ваш вопрос сформулирован так, как будто Netbeans были виноваты. Это не Netbeans - это правила языка Java. Ваш код недействителен в Eclipse, javac, IntelliJ и т. Д.

+0

большое спасибо за помощь, этот код работал для моей программы. –

+0

Это хороший пример, поскольку он показывает использование вызова функции для инициализации значения, мало кто знает, что это возможно. –

3

Вы не можете размещать код вне метода или блока инициализатора. Что вы можете сделать, так это;

String[] symbols = new String[42]; { symbols[0] = "∑"; } 

Вы можете также определить ваши символы таким образом

String[] symbols = "∑,+,-,/,*,^".split(","); 
Смежные вопросы