2011-05-13 19 views
9

Comencé un nuevo proyecto recientemente y vi el uso de anulación como el de abajo por primera vez.métodos de anulación sin subclases en Java

public class SomeClass { 
    public void myMethod() { 
    XStream xstream = new XStream() { 
      @Override 
      protected MapperWrapper wrapMapper(MapperWrapper next) { 
       return new MapperWrapper(next) { 
// the rest ommitted 

Básicamente, es reemplazando el método wrapMapper() de la clase XStream en los ThoughtWorks XSTREAM api pero sin tener SomeClass extender la clase XStream. He trabajado con Java durante varios años, pero esta es la primera vez que veo que la anulación se hace de esta manera. ¿Alguien puede explicar los pormenores? Gracias.

Respuesta

2

En este caso, la clase XStream es una clase interna anónima. Luego está anulando el método de su clase XStream anónima.

0

Eso se llama una "clase anónima". Puede encontrar mucha documentación sobre esta sintaxis especial en Internet. Buena suerte.

0

de búsqueda de Google para Anonymous clase interna en Java

que es bastante útil para implementar interfaces o métodos de clase abstracta en objetos concretos

Eso es muy usado cuando se trabaja con rosca (clase Ejecutable)

1

El nuevo aplicación de

wrapMapper (MapperWrapper siguiente)

método está limitado para esta instancia xstream

xstream xstream

este tipo de primordial es la creación de una clase que se extiende xstream, es por eso que se llama Anónimo, no tienen un nombre y no puedes tener una referencia para eso.

Cuestiones relacionadas