2011-10-25 6 views
0

다른 문제가 있습니다.전체지도를 전달하는 방법

다른 클래스에서 액세스 할 수 있도록 개체 및 관련 키의 전체지도를 보내려고합니다. 배열 목록을 전달하는 데 사용되는 것과 동일한 메서드를 사용하려고 했으므로 사용중인 메서드가 작동하지 않지만 Map에서는 작동하지 않습니다.

올바른 방법은 무엇입니까?

이 내가

public Map <Integer, Employee> getAllEmps() 
{ 
    return (Map <Integer, Employee>) ; 
} 

을 시도 무엇이며이 (실제지도 자체) 당신은지도 인스턴스가 아닌 형식을 반환해야

private static Map <Integer, Employee> employeeMap = new TreeMap<Integer,Employee>();  
+0

컴파일러가 무엇이 잘못되었는지를 알려주지 않습니까? 그게 당신에게주는 오류 메시지는 무엇입니까? – shyam

+0

아무튼를 반환해야 – jackrabbit

+0

궁금한데, 언어 자체 인 Java를 연구하기 위해 어떤 책/자료를 사용하고 있습니까? –

답변

2

당신은 변수 자체를 반환 할 수 있습니다. 당신이 사본을 반환 할 수 있습니다, 또는

public Map <Integer, Employee> getAllEmps() 
{ 
    return Collections.unmodifiableMap(employeeMap); 
} 

:

변경을 방지하기 위해, 당신은 unmodifiableMap을 반환 할 수 있습니다

public Map <Integer, Employee> getAllEmps() 
{ 
    return new TreeMap<Integer,Employee>(employeeMap); 
} 
당신이 돌아 오는`employeeMap` 대신 빈 배역
+0

감사합니다. 그 방법은 유용 할 것입니다. – Binyomin

+0

MainDriver 클래스에서 메서드를 만들었고 다른 클래스에서이 메서드에 액세스하려고합니다.이 코드 줄이 제대로 작동하지 않는 것 같습니다. 어떻게 올바르게 처리 할 수 ​​있습니까? theEmployeeMap = MainDriver.getAllEmps(); – Binyomin

+0

이 맞습니다. –

2

내가 선언 한 방법이다.

public Class SomeClass{ 
    private static Map<Integer,Employee> employeeMap=...; 

    //Other methods 


    public Map <Integer, Employee> getAllEmps() 
    { 
     return employeeMap ; 
    } 
} 

당신은 (아무 키) 만 직원을 원하는 경우에 다른 방법

public Collection<Employee> getEmployees(){ 

    return employeeMap.values(); 
    } 
0

귀하의 getAllMaps를() 함수는 실제로지도를 반환해야 추가 할 수 있습니다; 정적 employeeMap을 반환한다는 의미입니까?

+0

Oh hello again Dave 아니, 그냥지도를 돌려주고 싶다. – Binyomin

+0

MainDriver 클래스에서 메서드를 만들었으므로 다른 클래스에서이 메서드에 액세스하려고합니다. 이 코드 행은 제대로 작동하지 않는 것 같습니다. 어떻게 올바르게 수행 할 수 있습니까? 나는 분명히 theEmployeeMap을 선언했다. theEmployeeMap = MainDriver.getAllEmps(); – Binyomin

+0

@Binyomin 그 구문은 인스턴스 메서드가 아닌 정적 메서드를 의미합니다. –

1

왜 변수 자체를 전달하고지도를 멤버 변수로 사용하지 않으시겠습니까?

public Map <Integer, Employee> getAllEmps() 
{ 
    return employeeMap; 
} 

사람이지도의 contnent을 수정할 수있는 것 :

private Map <Integer, Employee> employeeMap = new Map <Integer, Employee>();  
public Map <Integer, Employee> getAllEmps() 
{ 
    return employeeMap; 
} 
+0

나를 명확히 해 주셔서 고마워. – Binyomin

+0

새로운 TreeMap () –

+0

@MauricePerry 당신이 옳습니다. 오타를 유감스럽게 생각합니다. – Efthymis

관련 문제