Sujet.java
复制代码代码如下 :
paquet _20140416_ ;
importer java.util.List ;
interface publique Sujet {
public String say (nom de la chaîne, âge int);
public List<Person> getAllList(String name);
}
Sujet réel.java
复制代码代码如下 :
paquet _20140416_ ;
importer java.util.ArrayList ;
importer java.util.List ;
classe publique RealSubject implémente le sujet {
nom de chaîne privé ;
public RealSubject (nom de la chaîne) {
this.name = nom ;
}
chaîne publique getName() {
renvoyer le nom ;
}
public void setName (nom de la chaîne) {
this.name = nom ;
}
@Outrepasser
public String say (nom de la chaîne, âge int) {
return "名字 :" + nom + "_年龄 :" + âge ;
}
@Outrepasser
public List<Person> getAllList(String nom) {
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(nom);
liste de retour ;
}
@Outrepasser
public int hashCode() {
renvoyer 10010 ;
}
@Outrepasser
public booléen égal (Objet obj) {
si (instance obj de RealSubject) {
Sujet réel réel = (Sujet réel) obj;
System.out.println("getName():"+real.getName());
System.out.println("this.name:"+this.name);
if(real.getName()==this.name){
System.out.println("相同");
}autre{
System.out.println("相同");
}
}
renvoie vrai ;
}
}
MyInvercationHander.java
复制代码代码如下 :
paquet _20140416_ ;
importer java.lang.reflect.InvocationHandler ;
importer java.lang.reflect.Method ;
importer java.lang.reflect.Proxy ;
la classe publique MyInvercationHander implémente InvocationHandler{
Objet privé obj ;
liaison d'objet public (objet obj) {
ceci.obj=obj;
return Proxy.newProxyInstance(obj.getClass().getClassLoader(),obj.getClass().getInterfaces(),this);
}
@Outrepasser
appel d'objet public (proxy d'objet, méthode de méthode, arguments Object[])
lance Jetable {
Objet temp = method.invoke(this.obj, args);
//这里做切面操作 比如我要加功能
System.out.println("方法之前!");
température de retour ;
}
}
Personne.java
复制代码代码如下 :
paquet _20140416_ ;
classe publique Personne {
nom de chaîne privé ;
âge int privé ;
chaîne publique getName() {
renvoyer le nom ;
}
public void setName (nom de la chaîne) {
this.name = nom ;
}
public int getAge() {
âge de retour;
}
public void setAge (int âge) {
this.age = âge;
}
personne publique (nom de chaîne, âge entier) {
super();
this.name = nom ;
this.age = âge;
}
}
MainTest.java
复制代码代码如下 :
paquet _20140416_ ;
importer java.util.HashMap ;
importer java.util.Iterator ;
importer java.util.Map ;
importer java.util.Set ;
classe publique MainTest {
public static void main (String[] arguments) {
Sujet sujet = (Sujet) new MyInvercationHander().bind(new RealSubject("中国"));
System.out.println(subject.say("莫建锋",22));
System.out.println(subject.getAllList("张三"));
Map<String,Integer> myMap = new HashMap<String, Integer>();
maCarte.put("A",1);
maCarte.put("B",2);
maCarte.put("C",3);
maCarte.put("D",4);
maCarte.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> entrée = 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国")));
Informations sur la chaîne = new String("1");
Chaîne info1 = new 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));
court je = 1 ;
System.out.println(i);
}
}