主題.java
複製程式碼如下:
包_20140416_;
導入java.util.List;
公共介面主題{
公共字符串說(字符串名稱,int年齡);
public List<Person> getAllList(字串名稱);
}
RealSubject.java
複製程式碼如下:
包_20140416_;
導入java.util.ArrayList;
導入java.util.List;
公共類別 RealSubject 實作主題 {
私有字串名稱;
公共 RealSubject(字串名稱){
this.name = 名稱;
}
公有字串 getName() {
返回名稱;
}
公有無效setName(字串名稱){
this.name = 名稱;
}
@覆蓋
公共字串說(字串名稱,整數年齡){
return "姓名:" + 姓名 + "_年齡:" + 年齡;
}
@覆蓋
公用清單 <Person> getAllList(字串名稱) {
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(名稱);
返回列表;
}
@覆蓋
公共 int hashCode() {
返回10010;
}
@覆蓋
公共布爾等於(對象obj){
if(RealSubject 的 obj 實例){
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("相同");
}別的{
System.out.println("不同");
}
}
返回真;
}
}
MyInvercationHander.java
複製程式碼如下:
包_20140416_;
導入 java.lang.reflect.InvocationHandler;
導入java.lang.reflect.Method;
導入 java.lang.reflect.Proxy;
公共類別 MyInvercationHander 實作 InvocationHandler{
私有對象 obj;
公共物件綁定(物件obj){
this.obj=obj;
返回 Proxy.newProxyInstance(obj.getClass().getClassLoader(),obj.getClass().getInterfaces(),this);
}
@覆蓋
公共物件呼叫(物件代理,方法方法,物件[]參數)
拋出可拋出的{
物件 temp = method.invoke(this.obj, args);
//這裡做切面操作例如我要加功能
System.out.println("方法之前!");
返回溫度;
}
}
人.java
複製程式碼如下:
包_20140416_;
公共類人{
私有字串名稱;
私有整數年齡;
公有字串 getName() {
返回名稱;
}
公有無效setName(字串名稱){
this.name = 名稱;
}
公有 int getAge() {
返回年齡;
}
公無效setAge(int年齡){
this.age = 年齡;
}
公共人(字串名稱,整數年齡){
極好的();
this.name = 名稱;
this.age = 年齡;
}
}
MainTest.java
複製程式碼如下:
包_20140416_;
導入java.util.HashMap;
導入 java.util.Iterator;
導入java.util.Map;
導入java.util.Set;
公共類別主測試{
公共靜態無效主(字串[] args){
主題 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> entry = 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國")));
字串資訊 = new String("1");
字串訊息1 = 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));
短i = 1;
System.out.println(i);
}
}