Flex / Prezzemolo - cavillo classe interna con la modalità di compilazione
-
01-10-2019 - |
Domanda
Questo è un rompicapo.
Rilevante Ambiente:. Flex app, prezzemolo in esecuzione, che viene costruito da formica
class Problema:
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() {}
Altrove, in una classe separata (che viene definito in un contesto Prezzemolo):
package com.foo.bar {
public class ProblemClassBuilder {
[Factory]
public function getProblem():ProblemClass {
return ProblemClass.build();
}
}
}
Ecco il kicker: Quando compilo questo da un compito formica con il debug = "true", funziona benissimo. Quando compilo con debug = "false", il prezzemolo tiri un errore durante la costruzione del contesto:
Errore durante l'applicazione [oggetto FactoryMethodDecorator]: Errore # 1065: Variabile Enforcer non è definito.
Non ci sono altre modifiche al codice, ad eccezione girando debug on / off nel compito formica mxmlc.
Qualcuno ha visto problemi simili con le classi interne e formica di debug di compilazione modalità?
Sono stato in grado di risolvere il problema, (togliendo la classe interna), ma non capisco il motivo per cui non ha funzionato, in primo luogo.
Soluzione
suona come un bug nel compilatore ... mi piacerebbe file, a bugs.adobe.com
Altri suggerimenti
È consentito soltanto una definizione di classe per ActionScript file, altrimenti è necessario utilizzare la parola chiave internal
quindi dovrebbe essere private internal class Enforcer()