Perché i costruttori vengono restituiti da ReflectionFactor.newConstructorForSerialization () chiamato & # 8220; munged & # 8221 ;?

StackOverflow https://stackoverflow.com/questions/1426106

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.

È stato utile?

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).

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top