2014-01-17 4 views
0

это мой классHashtable "Нерешенные сборник" в Java

package main; 

import java.util.Hashtable; 

public class Information { 

    private final static String name = "Info Name"; 
    private final static String direccion = "direction street number"; 

    Hashtable<String,String> coordenates = new Hashtable<String,String>(); 
    coordenates.put("lat", "36.564565465"); 
    coordenates.put("lng", "64.584616511"); 

} 

я узнал от oracle documentation

This example creates a hashtable of numbers. It uses the names of the numbers as keys: 

    Hashtable<String, Integer> numbers 
    = new Hashtable<String, Integer>(); 
    numbers.put("one", 1); 
    numbers.put("two", 2); 
    numbers.put("three", 3); 
To retrieve a number, use the following code: 

    Integer n = numbers.get("two"); 
    if (n != null) { 
    System.out.println("two = " + n); 
    } 

, что случилось с моим кодом ...

им с помощью Eclipse, для Java EE Developers, Java SE SDK 7 (1.7) на окнах 7 64 бит

спасибо!

+0

Что текст ошибки компилятора? – EJP

ответ

6

Вы пытаетесь выполнить код из стороны контекста метода, конструктора или static Инициализатора ...

public class Information { 

    private final static String name = "Info Name"; 
    private final static String direccion = "direction street number"; 

    Hashtable<String,String> coordenates = new Hashtable<String,String>(); 
    /** 
     This belongs in a constructor or method 
     coordenates.put("lat", "36.564565465"); 
     coordenates.put("lng", "64.584616511"); 
    **/ 

} 
+0

'coordenates' не' статичный', поэтому класть 'coordenates.put ...' внутри метода, конструктора или блока инициализации (не статического) будет в порядке. В любом случае +1 для быстрого ответа :) – Pshemo

+0

Да, я «вроде» намекнул на это в комментарии к коду;), но учитывая тот факт, что вы можете выполнять код в методе, конструкторе или статическом блоке, я пытался покрыть свои базы - не может понравиться каждому телу;) – MadProgrammer

+0

спасибо всем, я ставлю код ina constructor и он работает, im new y java ... – andrescabana86

0

вы пытаетесь вызвать hashtable.put() вне метода, вы можете вероятно, сделать это в конструкторе, я не уверен, что это ваше требование, но я предполагаю, что вы можете избежать накладных расходов Hashtable и определить два поля широты и долго

0

1.Запись его в основной функции

public static void main(String args[]) {  
    Hashtable<String,String> coordenates = new Hashtable<String,String>(); 
    coordenates.put("lat", "36.564565465"); 
    coordenates.put("lng", "64.584616511");  
} 

2.Write это в конструкторе

Information() { 
     access setter of coordinates to put values 
    }