2014-05-24 3 views
0

클래스를 인스턴스화하는 방법, 내가 클래스를 인스턴스화 할 수 없습니다내 응용 프로그램에서 문제가

이 내 java.lang.ClassCastException

eclipse.emf.editeurgraphique.risque.features.StartEventFeature$CreateStartEventFeature cannot be cast to org.eclipse.graphiti.features.ICreateFeature 
at eclipse.emf.editeurgraphique.risque.features.StartEventFeature.getCreateFeature(StartEventFeature.java:43) 

이다 그리고 이것은 나의 방법 :

public ICreateFeature getCreateFeature(IFeatureProvider fp) { 
    return (ICreateFeature) new CreateStartEventFeature(fp); 
} 

내 인터페이스 :

public interface ICreateFeature extends ICreate, IFeature { 
} 

내 클래스

public CreateStartEventFeature(IFeatureProvider fp) { 
     super(fp, "Start Event", "Indicates the start of a process or choreography"); 
    } 
+0

어디 CreateStartEventFeature에 대한 클래스 정의, 그것은 ICreateFeature을 구현 않습니다되어

public ICreateFeature getCreateFeature(IFeatureProvider fp) { return new CreateStartEventFeature(fp); } 
? –

+0

'CreateStartEventFeature' 클래스의 생성자뿐만 아니라 선언을 보여 주시면 잘못 된 것이 무엇이고 가장 좋은 수정 방법을 알 수 있습니까? 문제는 여기에 표시된 코드에 없습니다. –

+0

경우 CreateStartEventFeature 정말 ICreateFeature으로 주조 할 수있는 경우에만,이 .. 클래스 경로에 문제가 될 수 또는 하나 이상의 (다른) 클래스 로더를 사용했다 (2 회 정도 항아리를로드하는 ..). – AdamK

답변

0

귀하의 CreateStartEventFeature는

super(fp, "Start Event", "Indicates the start of a process or choreography"); 

는 Object 클래스에서 RO 실행 매개 변수화 된 생성자를 시도 슈퍼 생성자를 호출하여 당신에 의해 정의 된 클래스를, 그래서 확장되지 않습니다.

+0

아니요. 당신이 말하는 것이 사실이라면이 프로그램은 컴파일되지 않습니다. 그러나 Ines는 프로그램을 실행할 때 예외가 있으므로 컴파일해야합니다. –

+0

도와 주신 David에게 감사합니다. –

0

CreateStartEventFeature 인터페이스를 구현해야합니다 :

public class CreateStartEventFeature extends MyBaseClass implements ICreateFeature 
{...} 
+0

아니요. 'CreateStartEventFeature'의 생성자를보세요. 매우 구체적인 생성자가있는 수퍼 클래스가 있어야합니다. 따라서 선언문은 여기에 표시된 것보다 더 많은 것을 필요로합니다. –

+0

그렇다고해서 인터페이스를 구현할 수 없다는 의미는 아닙니다. –

+0

물론입니다. 이제 답을 편집 했으므로 더 이해가됩니다. –

0

는 전체 문제를 표시하지 않기 때문에 문제는 조금 혼란,하지만 난 CreateStartEventFeature이 ICreateFeature를 구현 가정, 그래서 명시 적 캐스트를 떠나보십시오

를 는
관련 문제