2015-01-21 4 views
-3

나는 이것이 머리 달기 "duh"라고 대답하는 쉬운 질문이기를 바라고있다. 그러나 나는 새롭고 알아낼 수 없다. 단순히 HashMap을 정의하고 "put"메서드로 초기화하려고하지만 IDE (Intellij)에서 "put"에 "symbol not resolve symbol"오류가 발생합니다. 나는 내가 할 수있는 간단한 예제를 만들었다. 머리를 두드리는 소리가납니다.Java 해결되지 않은 기호

package CSRLogin.NewAccount; 

import java.util.HashMap; 
import java.util.Map; 

public class MapTest { 

    Map<String, String> myMap = new HashMap<String, String>(); 
    myMap.put("A", "B"); 
} 
+1

구문 오류는 여기에 있습니다. 문제는 기본 자습서에서 다룹니다. –

+0

'myMap.put ("A", "B");는 어떤 코드 블록에도 없습니다. – mkobit

+0

그래서 이걸 알아 냈다고 생각해. 정적 초기화 블록을 사용하라. (초기화는 내가 처음부터하려고하는 것이다.) 그리고 Jeroen에게 감사드립니다. 당신 말이 맞아요, 제 수업에서 다루어 졌다고 확신 해요.하지만 나는 아직도 그것을 놓쳤습니다. –

답변

1

이러한 방법 또는 생성자로 코드 블록의 어떤 종류의 코드를 넣어 :

public class MapTest { 
    // Constructor 
    public MapTest() { 
     Map<String, String> myMap = new HashMap<String, String>(); 
     myMap.put("A", "B"); 
    } 

    // main-method 
    public static void main(String[] args) { 
     Map<String, String> myMap = new HashMap<String, String>(); 
     myMap.put("A", "B"); 
    } 
} 

당신이 다음을 수행 할 수있는 인스턴스 변수로지도를 저장하고자하는 경우 (A를 사용하는 경우 생성자) :

public class MapTest { 
    private Map<String, String> myMap = new HashMap<String, String>(); 

    // Constructor 
    public MapTest() { 
     myMap.put("A", "B"); 
    } 
} 

또 다른 대안은 정적 변수를 사용하여 데이터를 보유하는 것입니다.

int size = MapTest.myMap.size(); 

더 많은 정보를 원하시면 다음 리소스를 참조하십시오 :

    public class MapTest { 
        static Map<String, String> myMap = new HashMap<String, String>(); 
    
        { 
         myMap.put("A", "B"); 
        } 
    } 
    

    이 그럼 당신은 클래스 이름을 통해지도에 액세스해야합니다 : 그럼 당신은 또한이 같은 정적 초기화를 사용할 수 있습니다

  • Understanding class variables
  • Basics about classes
관련 문제