Subject.java
复制代码代码如下:
Paket _20140416_;
java.util.List importieren;
öffentliche Schnittstelle Betreff {
public String say(String name,int age);
public List<Person> getAllList(String name);
}
RealSubject.java
复制代码代码如下:
Paket _20140416_;
import java.util.ArrayList;
java.util.List importieren;
Die öffentliche Klasse RealSubject implementiert Subject {
privater String-Name;
public RealSubject(String name) {
this.name = Name;
}
öffentlicher String getName() {
Rückgabename;
}
public void setName(String name) {
this.name = Name;
}
@Override
public String say(String name, int age) {
return „名字:“ + Name + „_年龄:“ + Alter;
}
@Override
public List<Person> getAllList(String name) {
List<Person> list = new ArrayList<Person>();
list.add(new Person("A", 20));
list.add(new Person("B", 20));
list.add(new Person("C", 20));
list.add(new Person("D", 20));
System.out.println(name);
Rückgabeliste;
}
@Override
public int hashCode() {
Rückkehr 10010;
}
@Override
öffentlicher boolescher Wert gleicht(Objekt obj) {
if(obj Instanz von RealSubject){
RealSubject real = (RealSubject)obj;
System.out.println("getName():"+real.getName());
System.out.println("this.name:"+this.name);
if(real.getName()==this.name){
System.out.println("Drucken");
}anders{
System.out.println("Drucken");
}
}
return true;
}
}
MyInvercationHander.java
复制代码代码如下:
Paket _20140416_;
import java.lang.reflect.InvocationHandler;
import java.lang.reflect.Method;
import java.lang.reflect.Proxy;
Die öffentliche Klasse MyInvercationHander implementiert InvocationHandler{
privates Objekt obj;
öffentliches Objekt bind(Objekt obj){
this.obj=obj;
return Proxy.newProxyInstance(obj.getClass().getClassLoader(),obj.getClass().getInterfaces(),this);
}
@Override
öffentlicher Objektaufruf (Objekt-Proxy, Methodenmethode, Objekt[]-Argumente)
wirft Throwable {
Object temp = method.invoke(this.obj, args);
//这里做切面操作 比如我要加功能
System.out.println("方法之前!");
Rücklauftemperatur;
}
}
Person.java
复制代码代码如下:
Paket _20140416_;
öffentliche Klasse Person {
privater String-Name;
privates Int-Alter;
öffentlicher String getName() {
Rückgabename;
}
public void setName(String name) {
this.name = Name;
}
public int getAge() {
Rückkehralter;
}
public void setAge(int age) {
this.age = Alter;
}
öffentliche Person(String name, int age) {
super();
this.name = Name;
this.age = Alter;
}
}
MainTest.java
复制代码代码如下:
Paket _20140416_;
import java.util.HashMap;
import java.util.Iterator;
java.util.Map importieren;
import java.util.Set;
öffentliche Klasse MainTest {
public static void main(String[] args) {
Subject subject = (Subject) new MyInvercationHander().bind(new RealSubject("中国"));
System.out.println(subject.say("莫建锋",22));
System.out.println(subject.getAllList("张三"));
Map<String,Integer> myMap = new HashMap<String, Integer>();
myMap.put("A",1);
myMap.put("B",2);
myMap.put("C",3);
myMap.put("D",4);
myMap.put("E",5);
Set<Map.Entry<String,Integer>> myEntrySet = myMap.entrySet();
Iterator<Map.Entry<String,Integer>> it = myEntrySet.iterator();
while(it.hasNext()){
Map.Entry<String,Integer> enter = 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国")));
String-Info = neuer String("1");
String info1 = neuer String("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));
kurz i = 1;
System.out.println(i);
}
}