Perché i costruttori vengono restituiti da ReflectionFactor.newConstructorForSerialization () chiamato & # 8220; munged & # 8221 ;?
-
07-07-2019 - |
Domanda
In Java, è possibile creare istanze di una classe senza effettivamente chiamare un costruttore dichiarato recuperandone uno tramite sun.reflect.ReflectionFactor.newConstructorForSerialization ().
Per quanto ne so, questo costruttore speciale si chiama "munged". Da dove viene questo termine? Non sono riuscito a trovarlo in nessun dizionario.
Soluzione
Credo che sia usato come nel senso seguente, perché stai in qualche modo aggirando / falsificando il normale ciclo di creazione dell'oggetto, saltando il costruttore:
(elaborazione) modifica o falsifica una email (o altro indirizzo Internet) così non può essere raccolto automaticamente, esp. per evitare i robot spam
(elaborazione) modifica un file; rendere cambiamenti irrevocabili, distruggere, offuscare
Entrambe le definizioni provengono dal WordNet di Princeton.
Altri suggerimenti
Dal wiktionary:
Per trasformare i dati in un non definito o modo inspiegabile.
Il costruttore per la deserializzazione non [necessariamente] chiama il costruttore della super classe e non fa parte della classe originale. Dal punto di vista delle specifiche JVM, è illegale - una versione sporca di un costruttore legale.
Inoltre, le classi dal pacchetto sun. * non devono essere utilizzate direttamente in quanto potrebbero non essere disponibili su altre implementazioni JDK (quindi questo "costruttore" potrebbe non essere definito con un altro JDK).