¿Alguien puede darme un buen ejemplo para Java CGLib Mixin uso de clase? Estuve hurgando, ninguno de ellos parece lo suficientemente simple.CGLib Mixin Ejemplo
7
A
Respuesta
7
bastante fácil:
import static org.junit.Assert.*;
import net.sf.cglib.proxy.Mixin;
import org.junit.Before;
import org.junit.Test;
public class MixinTest {
@Test
public void test() {
Mixin mixin = Mixin.create(new Object[]{ new Class1(), new Class2() });
assertEquals(1, ((Interface1)mixin).method1());
assertEquals(2, ((Interface2)mixin).method2());
}
private interface Interface1 {
public int method1();
}
private interface Interface2 {
public int method2();
}
private static class Class1 implements Interface1 {
@Override
public int method1() {
return 1;
}
}
private static class Class2 implements Interface2 {
@Override
public int method2() {
return 2;
}
}
}
espero que ayude.
0
Este ejemplo de trabajo con promotor de avanzada y trabajar como mixin: http://www.jroller.com/melix/entry/alternative_to_delegate_pattern_with
1
La cuestión es más amplia que sólo la interfaz de bases de casos mixin, así que aquí está el ejemplo de CGLIB mixin con 2 clases arbitrarias:
import java.lang.reflect.Method;
import java.nio.charset.Charset;
import java.util.Locale;
import net.sf.cglib.proxy.Mixin;
import net.sf.cglib.proxy.Mixin.Generator;
public class CglibTest {
public static void main(String[] args) throws Exception {
Generator gen = new Generator();
gen.setStyle(Mixin.STYLE_EVERYTHING);
gen.setDelegates(new Object[]{ Charset.defaultCharset(), Locale.getDefault()});
Mixin mixin = gen.create();
System.out.println(invokeMethod(mixin, "displayName"));
System.out.println(invokeMethod(mixin, "getCountry"));
}
public static Object invokeMethod(Object target, String methodName) throws Exception {
Method method = target.getClass().getMethod(methodName);
return method.invoke(target);
}
}
Cuestiones relacionadas
- 1. maravilloso Mixin de Instancia (Dynamic Mixin)
- 2. terminología mixin
- 3. Jade, mixin && html
- 4. ¿Conservar anotaciones en los proxies CGLIB?
- 5. ASM o CGLIB analógico para Dalvik
- 6. Mixin vs herencia
- 7. C++ Cloneable mixin
- 8. ¿Puedes probar si existe mixin?
- 9. mixin vs plugin. ¿Qué elegir?
- 10. mixin o rasgo en F #
- 11. MENOS guardias de CSS sin mixin
- 12. Implementación de Mixin o Trait en AS3?
- 13. Mixin dinámico en Scala - ¿es posible?
- 14. Mezcla de proxies JDK y CGLIB en Spring
- 15. que imita una propiedad de un CGLIB servicio no trabaja
- 16. clase abstracta + + mixin herencia múltiple en Python
- 17. ¿Mixin se considera un patrón de diseño?
- 18. Imagen de fondo de Sass mixin
- 19. ¿Objective-C admite Mixin como Ruby?
- 20. ¿Variable de ajuste a @mixin en Sass?
- 21. Sass mixin con si otra cosa
- 22. Rubí mixin no identificada da error constante
- 23. sqlalchemy Mover columnas mixin al final
- 24. Creando mixin con Spring AOP Introducciones
- 25. Ruby mixin override método de aclaración
- 26. sobrecarga de un operador a través de una mixin
- 27. ¿Es esto mixin y se puede hacer en C++?
- 28. SQLAlchemy: captador/definidor en la clase Mixin declarativa
- 29. Django: Creación de Mixin para campos de modelo reutilizables
- 30. Pros/contras de un objeto observador global vs. una mixin