2015-06-08 2 views
-3

Новое на Java, поэтому, пожалуйста, несите меня!class - variable declaration-attributes

Могу ли я узнать, почему это неправильно?
Ошибок в объявлении карты hashmap, но ошибки, когда я пытаюсь заполнить их некоторыми парами.
Это не дает ошибок, если я заполняю их в конструкторе.

import java.util.*; 

public class Test 
{ 
    static String pos_Let ; //letter coordinate for map 
    static int pos_Num;  // number coordinate for map 
    static int pos_LetNum ; //number reference of letter from HashMap let 

    Map o = new HashMap(); 
    o.put(6, "O"); 
    o.put(7, "O"); 
    o.put(9, "O"); 
    o.put(10, "O"); 
    o.put(12, "O"); 

    Hashtable p = new Hashtable(); 
    p.put (10,"P"); 
    p.put (11,"P"); 
} 
+0

«но ошибки» ничего не сообщают нам об ошибке, которую вы получаете. Я * сильно * подозреваю, что при предоставлении описания ошибки вы обнаружите, что поиск в Stack Overflow для этого точного сообщения об ошибке найдет много дубликатов. –

+1

Ответ от tibtof решает вашу ** текущую ** проблему. Но ваша реальная проблема в том, что вы слишком быстро используете свой текущий уровень мастерства. Вы не понимаете основную структуру классов java; но вы уже «добавляете» такие вещи, как hashmaps. Таким образом, у вас возникают проблемы; для них здесь. Другими словами: вы ожидаете, что люди здесь ** обучат вас. Но это не намерение этого сайта. Моя личная рекомендация: начните с супер маленьких примеров. Введите их, запустите компилятор и выполните их. Или, по крайней мере: сделайте так, как говорит Джон. Не спрашивайте, что задавали здесь тысячи раз. – GhostCat

ответ

3

Вы пишете код вне метода или статический/инициализационный блок. В Java это запрещено.

Для быстрого теста вы можете использовать основной метод:

public static void main(String[] args) { 
    Map o = new HashMap(); 
    o.put(6, "O"); 
    o.put(7, "O"); 
    o.put(9, "O"); 
    o.put(10, "O"); 
    o.put(12, "O"); 


    Hashtable p = new Hashtable(); 
    p.put (10,"P"); 
    p.put (11,"P"); 
} 

Если вы хотите, чтобы определить карту в поле и он инициализируется вы можете использовать либо конструктор или блок инициализации:

final Map<Integer, String> o; 

{ 
    o = new HashMap<Integer, String>(); 
    o.put(6, "O"); 
    o.put(7, "O"); 
    o.put(9, "O"); 
    o.put(10, "O"); 
    o.put(12, "O"); 
} 
Смежные вопросы