제목.java
复代码代码如下:
패키지 _20140416_;
java.util.List 가져오기;
공개 인터페이스 제목 {
public String say(문자열 이름, int age);
public List<Person> getAllList(문자열 이름);
}
RealSubject.java
复代码代码如下:
패키지 _20140416_;
import java.util.ArrayList;
java.util.List 가져오기;
공개 클래스 RealSubject는 주제 {를 구현합니다.
개인 문자열 이름;
공개 RealSubject(문자열 이름) {
this.name = 이름;
}
공개 문자열 getName() {
이름 반환;
}
public void setName(문자열 이름) {
this.name = 이름;
}
@보수
public String say(문자열 이름, int age) {
return "이름:" + 이름 + "_年龄:" + 나이;
}
@보수
public List<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(객체 인스턴스of RealSubject){
RealSubject 실수 = (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_;
import java.lang.reflect.InvocationHandler;
import java.lang.reflect.Method;
import java.lang.reflect.Proxy;
공개 클래스 MyInvercationHander는 InvocationHandler를 구현합니다.
개인 객체 obj;
공용 객체 바인드(객체 obj){
this.obj=obj;
return Proxy.newProxyInstance(obj.getClass().getClassLoader(),obj.getClass().getInterfaces(),this);
}
@보수
공용 객체 호출(객체 프록시, 메소드 메소드, Object[] args)
Throwable {를 던집니다.
객체 임시 = method.invoke(this.obj, args);
//这里做切面操作 比如我要加功能
System.out.println("이전의 방법!");
복귀온도;
}
}
Person.java
复代码代码如下:
패키지 _20140416_;
공개 클래스 사람 {
개인 문자열 이름;
비공개 연령;
공개 문자열 getName() {
이름 반환;
}
public void setName(문자열 이름) {
this.name = 이름;
}
공개 int getAge() {
복귀 연령;
}
공개 무효 setAge(int age) {
this.나이 = 나이;
}
public Person(문자열 이름, int age) {
감독자();
this.name = 이름;
this.나이 = 나이;
}
}
MainTest.java
复代码代码如下:
패키지 _20140416_;
java.util.HashMap 가져오기;
import java.util.Iterator;
java.util.Map 가져오기;
import java.util.Set;
공개 클래스 MainTest {
공개 정적 무효 메인(String[] args) {
제목 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();
동안(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");
String 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));
짧게 i = 1;
System.out.println(i);
}
}