메서드에서 수정할 수없는 맵을 반환하고 있습니다. 런타임 오류가 아니라 반환 된 맵을 수정하려고하는 코드에 컴파일 타임 오류가 발생하는지 확인하려면 어떻게해야합니까?해당 메서드를 선언하는 방법 Collections.unmodifiableMap
내 클래스 :
Foo foo = new Foo();
Map<String, Bar> m = foo.getMap();
m.put('key',null); // user should be notified that the map is unmodifiable here, not at run time
내가 반환 형식을 변경할 수 있습니다
public class Foo
{
private final Map<String, Bar> aMap;
public Foo()
{
...
}
public Map<String, Bar> getMap(){
return Collections.unmodifiableMap(aMap);
}
}
내가이 컴파일시 에러를 만들려면? 적절한 주석을 추가 할 수 있습니까?
메서드의 반환 형식이 java.util.Map 인 경우이를 수행 할 방법이 없습니다. 반환 형식은'Map'을 래핑하는 사용자 정의 클래스로만 변경할 수 있습니다. – jlordo
괜찮 았는데 반환 유형을 어떻게 변경합니까? – Boundless
아마도이 경우 전체지도를 반환하면 안됩니다. – doctorlove