件名.java
复制番号代番号次のように:
パッケージ_20140416_;
java.util.Listをインポートします。
パブリックインターフェイスの件名 {
public String Say(String name,int age);
public List<人> getAllList(文字列名);
}
RealSubject.java
复制番号代番号次のように:
パッケージ_20140416_;
java.util.ArrayListをインポートします。
java.util.Listをインポートします。
public class RealSubject は Subject { を実装します。
プライベート文字列名。
public RealSubject(文字列名) {
this.name = 名前;
}
public String getName() {
名前を返します。
}
public void setName(文字列名) {
this.name = 名前;
}
@オーバーライド
public String Say(String name, int age) {
return "名前:" + 名前 + "_年龄:" + 年齢;
}
@オーバーライド
public List<人> getAllList(文字列名) {
List<人> list = new ArrayList<人>();
list.add(新しい人("A", 20));
list.add(新しい人("B", 20));
list.add(新しい人("C", 20));
list.add(新しい人("D", 20));
System.out.println(名前);
リストを返す;
}
@オーバーライド
public int hashCode() {
10010 を返します。
}
@オーバーライド
public booleanquals(Object obj) {
if(obj インスタンスof 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("同じ");
}それ以外{
System.out.println("異なる");
}
}
true を返します。
}
}
MyInvercationHander.java
复制番号代番号次のように:
パッケージ _20140416_;
インポート java.lang.reflect.InvocationHandler;
java.lang.reflect.Methodをインポートします。
java.lang.reflect.Proxyをインポートします。
public class MyInvercationHander は InvocationHandler{ を実装します。
プライベートオブジェクトobj;
public Object binding(Object obj){
この.obj=obj;
return Proxy.newProxyInstance(obj.getClass().getClassLoader(),obj.getClass().getInterfaces(),this);
}
@オーバーライド
public Object invoke(オブジェクトプロキシ、メソッドメソッド、Object[] args)
スロー可能 {
オブジェクト temp = method.invoke(this.obj, args);
//这里做切面操作比如我要加機能
System.out.println("方法の前!");
戻り温度;
}
}
人物.java
复制番号代番号次のように:
パッケージ _20140416_;
パブリック クラス 人 {
プライベート文字列名。
プライベートの年齢。
public String getName() {
名前を返します。
}
public void setName(文字列名) {
this.name = 名前;
}
public int getAge() {
年齢を返す。
}
public void setAge(int age) {
this.age = 年齢;
}
public Person(文字列名、整数の年齢) {
素晴らしい();
this.name = 名前;
this.age = 年齢;
}
}
MainTest.java
复制番号代番号次のように:
パッケージ_20140416_;
java.util.HashMapをインポートします。
java.util.Iteratorをインポートします。
java.util.Mapをインポートします。
java.util.Setをインポートします。
パブリック クラス 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> エントリ = 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 = 新しい文字列("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);
}
}