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");
    }
4

3 に答える 3

0

問題全体が表示されていないため、質問は少し混乱していますが、CreateStartEventFeature が ICreateFeature を実装していると想定しているため、明示的なキャストを省略してみてください。

public ICreateFeature getCreateFeature(IFeatureProvider fp) {
    return new CreateStartEventFeature(fp);
}
于 2014-05-24T21:51:54.323 に答える
0

CreateStartEventFeature はインターフェイスを実装する必要があります。

public class CreateStartEventFeature extends MyBaseClass implements ICreateFeature 
{...}
于 2014-05-24T21:40:33.323 に答える
0

CreateStartEventFeature は、定義したクラスを拡張しないため、スーパー コンストラクターを呼び出すことによって

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

Object クラスからパラメーター化されたコンストラクターを実行してみます。

于 2014-05-24T21:37:52.553 に答える