2013-01-22 2 views
0
private HashMap<String, SuperClass> mapOfRoles = new HashMap(); 
public void X() 
    { 
     mapOfRoles.put(String, SubClassA); 
     mapOfRoles.put(String, SubClassB); 
    } 

오류의 HashMap 사용 아니오 넣어 찾지 적절한 방법 (문자열, 늑대) playerRolesMap.put (listOfPlayers.get (0), 새로운 울프 (listOfPlayers.get (0))); 방법 HashMap.put (문자열, 역할)이 적용되지 않습니다 (늑대 메소드 호출 변환에 의해 역할로 변환 할 수 없습니다 실제 인수) 늑대 역할의 서브 클래스 내가 쓰기 위해 노력하고있어서브 클래스로

입니다

프로그램에서 서브 클래스로 작성된 메소드에 액세스해야하지만, 서브 클래스를 수퍼 클래스로 캐스트 할 수 없으므로 컴파일되지 않습니다. 컴파일러는 실제 인수 subclassA를 메소드 호출 변환으로 수퍼 클래스로 변환 할 수 없습니다.

현재 코드를 구현하여 obj를 동적으로 검색 할 수있는 다른 방법을 볼 수 없습니다. ects. 대부분의 경우 하위 클래스에 대해 호출 할 메서드는 수퍼 클래스 내에 포함되어 있지만 각 하위 클래스에는 관련된 메서드 만 있습니다.

수정 가능한 결함이 있습니까?

+1

* "하위 클래스를 수퍼 클래스로 캐스트 할 수 없습니다"*? 아마도 당신이하려는 일의 실제 예를 보여줄 수 있습니까? – NPE

+0

실제 인수 서브 클래스는 메소드 호출 변환에 의해 수퍼 클래스로 변환 될 수 없습니다. - 서브 클래스에만 존재하는 다른 메소드와 변수로 인해 – user1742032

+0

코드와 완전하고 정확한 오류 메시지를 보여주십시오. –

답변

5

물론 can do what you are trying입니다. 그러나 인스턴스StringSubClass1SubClass2으로 매핑해야합니다.

0

저는 이것이 당신이 찾고있는 대답인지는 모르겠지만 공통 인터페이스를 만들어서 참조로 사용할 수 있습니다! 나는 그것을 polymorphismen이라고 믿습니다!

관련 문제