1

私は Flash Builder 4.7 を使用していますが、これが発生しているクラスに変更を加えることなく、奇妙な問題に遭遇しました。

VerifyError: Error #1053: Illegal override of HUDScreen in mobile_ui.screens.HUDScreen.

このクラスは Sprite を拡張し、インターフェイスを実装します。私の知る限り、インターフェイスのすべてのメソッドには適切なプロトタイプがあります。このクラスにはオーバーライドされたプロパティや関数はありません。関連する場合は、依存性注入にもロボットレッグを使用しています。

クラス定義

public class HUDScreen extends Sprite implements IHUDScreen
{
}

コンストラクタ

public function HUDScreen()
{

}

インターフェイス定義

public interface IHUDScreen extends IEventDispatcher
{

}

プロジェクトのクリーニングを試み、プロジェクトを削除して再インポートし、パッケージを ui.screens.HUDScreen から mobile_ui.screens.HUDScreen に変更しました。エラーは何も変わりませんでした。

この時点で他の提案があれば大歓迎です!

お時間をいただきありがとうございます。

編集: クラス定義、インターフェイス定義、およびコンストラクターを追加しました。

更新: 私はこの問題を乗り越えることができました。以下の回答で何をしたかを概説しました。これがどのように起こったのか、あるいはおそらくより具体的な解決策について、誰かの考えやアイデアに今でも興味があります.

この質問を見てくださった皆様、ありがとうございました!

4

2 に答える 2

4

これは、コンパイラが検出しないインターフェイスの不適切な実装が原因のようです。次のコードを切り取ると、エラーが発生します。

public class Foo implements IFoo
{
    public function bar():String { return ""; }
}

public interface IFoo
{
    function get bar():String;
}

IFoo.bar問題はゲッターであるという事実によって引き起こされますFoo.bar()が、通常の方法です。これは、コードを調べているときに簡単に見逃す可能性のある一種のエラーであり、すべてを削除して書き直せば修正されます。

于 2014-10-07T10:04:13.900 に答える