0

これは謎解きです。

関連する環境:antによってビルドされるパセリを実行するFlexアプリ。

問題クラス:

package com.foo.bar {
    public class ProblemClass {
        // constructor
        public ProblemClass(enforcer:Enforcer) {}

        public static function build():ProblemClass  {
            // Do some setup
            return new ProblemClass(new Enforcer())
    }
}
// internal private class
class Enforcer() {}

他の場所では、別のクラス(Parsleyコンテキストで定義されます):

package com.foo.bar {
    public class ProblemClassBuilder {
        [Factory]
        public function getProblem():ProblemClass {
            return ProblemClass.build();
        }
      }
}

キッカーは次のとおりです。debug="true"を使用してantタスクからこれをコンパイルすると、正常に動作します。debug = "false"を使用してコンパイルすると、コンテキストの構築中にパセリがエラーをスローします。

[object FactoryMethodDecorator]の適用中にエラーが発生しました:エラー#1065:変数エンフォーサーが定義されていません。

mxmlc antタスクでデバッグをオン/オフにする以外、他のコード変更はありません。

内部クラスとantデバッグコンパイルモードで同様の問題を見た人はいますか?

(内部クラスを削除することで)問題を修正できましたが、そもそもなぜ機能しなかったのかわかりません。

4

2 に答える 2

1

コンパイラのバグのように聞こえます...私はbugs.adobe.comにファイルします

于 2010-08-27T16:12:04.363 に答える
-2

actionscriptファイルごとに1つのクラス定義のみが許可されます。それ以外の場合は、internalキーワードを使用する必要があるため、次のようになります。private internal class Enforcer()

于 2010-08-27T06:36:13.043 に答える