Subjek.java
复制代码代码如下:
paket _20140416_;
impor java.util.List;
antarmuka publik Subjek {
public String say(Nama string,int umur);
Daftar publik<Orang> getAllList(Nama string);
}
Subjek Nyata.java
复制代码代码如下:
paket _20140416_;
impor java.util.ArrayList;
impor java.util.List;
kelas publik RealSubject mengimplementasikan Subjek {
nama String pribadi;
Subjek Nyata publik(Nama string) {
ini.nama = nama;
}
String publik getName() {
nama kembali;
}
public void setName(Nama string) {
ini.nama = nama;
}
@Mengesampingkan
public String say(Nama string, int umur) {
return "名字:" + nama + "_年龄:" + umur;
}
@Mengesampingkan
Daftar publik<Orang> getAllList(Nama string) {
Daftar<Orang> daftar = Daftar Array baru<Orang>();
list.add(Orang baru("A", 20));
list.add(Orang baru("B", 20));
list.add(Orang baru("C", 20));
list.add(Orang baru("D", 20));
System.out.println(nama);
daftar pengembalian;
}
@Mengesampingkan
kode hash int publik() {
kembalikan 10010;
}
@Mengesampingkan
boolean publik sama dengan(Obj objek) {
if(obj instanceof RealSubject){
Subjek Nyata nyata = (Subjek Nyata)obj;
Sistem.keluar.println("getName():"+real.getName());
System.out.println("nama.ini:"+nama.ini);
if(real.getName()==ini.nama){
System.out.println("相同");
}kalau tidak{
System.out.println("不相同");
}
}
kembali benar;
}
}
MyInvercationHander.java
复制代码代码如下:
paket _20140416_;
import java.lang.reflect.InvocationHandler;
import java.lang.reflect.Method;
import java.lang.reflect.Proxy;
kelas publik MyInvercationHander mengimplementasikan InvocationHandler{
objek Obyek pribadi;
pengikatan Objek publik(Obj objek){
ini.obj=obj;
return Proxy.newProxyInstance(obj.getClass().getClassLoader(),obj.getClass().getInterfaces(),ini);
}
@Mengesampingkan
pemanggilan Objek publik (Proksi objek, Metode metode, Objek[] args)
lemparan Dapat dilempar {
Suhu objek = metode.invoke(ini.obj, args);
//这里做切面操作 比如我要加功能
System.out.println("方法之前!");
suhu kembali;
}
}
Orang.java
复制代码代码如下:
paket _20140416_;
kelas publik Orang {
nama String pribadi;
usia swasta;
String publik getName() {
nama kembali;
}
public void setName(Nama string) {
ini.nama = nama;
}
publik int getUmur() {
usia kembali;
}
public void setAge(int usia) {
this.usia = usia;
}
Orang publik(String nama, int usia) {
super();
ini.nama = nama;
this.usia = usia;
}
}
MainTest.java
复制代码代码如下:
paket _20140416_;
impor java.util.HashMap;
impor java.util.Iterator;
import java.util.Map;
impor java.util.Set;
Tes Utama kelas publik {
public static void main(String[] args) {
Subjek subjek = (Subjek) new MyInvercationHander().bind(new RealSubject("中国"));
System.out.println(subjek.say("莫建锋",22));
System.out.println(subjek.getAllList("张三"));
Peta<String,Integer> myMap = HashMap baru<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()){
Peta.Entri<String,Integer> entri = it.next();
Sistem.keluar.cetak(entry.getKey()+":");
Sistem.keluar.println(entry.getValue());
}
System.out.println(RealSubject baru("中国").hashCode());
System.out.println(New RealSubject("中国").equals(new RealSubject("中dd国")));
Informasi string = String baru("1");
String info1 = String baru("1");
System.out.println(Integer baru('1'));
Sistem.keluar.println(info.hashCode());
Sistem.keluar.println(info1.hashCode());
Sistem.keluar.println(info==info1);
System.out.println(info.equals(info1));
pendek saya = 1;
Sistem.keluar.println(i);
}
}