Asunto.java
复制代码代码如下:
paquete _20140416_;
importar java.util.List;
interfaz pública Asunto {
cadena pública decir (nombre de cadena, edad int);
Lista pública <Persona> getAllList (nombre de cadena);
}
RealSubject.java
复制代码代码如下:
paquete _20140416_;
importar java.util.ArrayList;
importar java.util.List;
clase pública RealSubject implementa Asunto {
nombre de cadena privada;
public RealSubject (nombre de cadena) {
this.nombre = nombre;
}
cadena pública getName() {
nombre de retorno;
}
setName público vacío (nombre de cadena) {
this.nombre = nombre;
}
@Anular
cadena pública decir (nombre de cadena, edad int) {
devolver "名字:" + nombre + "_年龄:" + edad;
}
@Anular
Lista pública <Persona> getAllList (nombre de cadena) {
Lista<Persona> lista = nueva ArrayList<Persona>();
list.add(nueva Persona("A", 20));
lista.add(nueva Persona("B", 20));
list.add(nueva Persona("C", 20));
list.add(nueva Persona("D", 20));
System.out.println(nombre);
lista de devolución;
}
@Anular
público int código hash() {
devolver 10010;
}
@Anular
público booleano es igual (Objeto obj) {
if(obj instancia de RealSubject){
RealSubject real = (RealSubject)obj;
System.out.println("getName():"+real.getName());
System.out.println("este.nombre:"+este.nombre);
if(real.getName()==este.nombre){
System.out.println("相同");
}demás{
System.out.println("不相同");
}
}
devolver verdadero;
}
}
MyInvercationHander.java
复制代码代码如下:
paquete _20140416_;
importar java.lang.reflect.InvocationHandler;
importar java.lang.reflect.Method;
importar java.lang.reflect.Proxy;
la clase pública MyInvercationHander implementa InvocationHandler{
objeto privado obj;
Enlace de objeto público (Objeto obj) {
this.obj=obj;
return Proxy.newProxyInstance(obj.getClass().getClassLoader(),obj.getClass().getInterfaces(),this);
}
@Anular
Invocación pública de objeto (proxy de objeto, método de método, argumentos de objeto [])
lanza arrojable {
Temperatura del objeto = método.invoke(this.obj, args);
//这里做切面操作 比如我要加功能
System.out.println("方法之前!");
temperatura de retorno;
}
}
persona.java
复制代码代码如下:
paquete _20140416_;
Persona de clase pública {
nombre de cadena privada;
edad privada;
cadena pública getName() {
nombre de retorno;
}
setName público vacío (nombre de cadena) {
this.nombre = nombre;
}
público int getAge() {
edad de retorno;
}
setAge público vacío (int edad) {
this.age = edad;
}
Persona pública (nombre de cadena, edad int) {
súper();
this.nombre = nombre;
this.age = edad;
}
}
Prueba principal.java
复制代码代码如下:
paquete _20140416_;
importar java.util.HashMap;
importar java.util.Iterator;
importar java.util.Map;
importar java.util.Set;
prueba principal de clase pública {
público estático vacío principal (String [] argumentos) {
Asunto asunto = (Asunto) new MyInvercationHander().bind(new RealSubject("中国"));
System.out.println(subject.say("莫建锋",22));
System.out.println(subject.getAllList("张三"));
Mapa<Cadena,Entero> miMapa = nuevo HashMap<Cadena, Entero>();
miMapa.put("A",1);
miMapa.put("B",2);
miMapa.put("C",3);
miMapa.put("D",4);
miMapa.put("E",5);
Establecer<Map.Entry<String,Integer>> myEntrySet = myMap.entrySet();
Iterador<Map.Entry<String,Integer>> it = myEntrySet.iterator();
mientras(es.tieneSiguiente()){
Map.Entry<String,Integer> entrada = it.next();
System.out.print(entry.getKey()+":");
System.out.println(entry.getValue());
}
System.out.println(new RealSubject("中国").hashCode());
System.out.println(new RealSubject("中国").equals(new RealSubject("中dd国")));
Información de cadena = nueva cadena ("1");
Cadena info1 = nueva cadena ("1");
System.out.println(new Integer('1'));
System.out.println(info.hashCode());
System.out.println(info1.hashCode());
System.out.println(info==info1);
System.out.println(info.equals(info1));
corto i = 1;
System.out.println(i);
}
}