最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

基于接口實現(xiàn)java動態(tài)代理示例

 更新時間:2014年04月22日 09:30:28   作者:  
這篇文章主要介紹了基于接口實現(xiàn)java動態(tài)代理示例,需要的朋友可以參考下

Subject.java

復制代碼 代碼如下:

package _20140416_;

import java.util.List;

public interface Subject {
   public String say(String name,int age);
   public List<Person> getAllList(String name);
}

RealSubject.java

復制代碼 代碼如下:

package _20140416_;

import java.util.ArrayList;
import java.util.List;

public class RealSubject implements Subject {

 private String name;

 public RealSubject(String name) {
  this.name = name;
 }

 public String getName() {
  return name;
 }

 public void setName(String name) {
  this.name = name;
 }

 @Override
 public String say(String name, int age) {
  return "名字:" + name + "_年齡:" + age;
 }

 @Override
 public List<Person> getAllList(String name) {
  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(name);
  return list;
 }

 @Override
 public int hashCode() {
  return 10010;
 }

 @Override
 public boolean equals(Object obj) {
  if(obj instanceof 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("相同");
   }else{
    System.out.println("不相同");
   }
  }
  return true;
 }
}

MyInvercationHander.java

復制代碼 代碼如下:

package _20140416_;

import java.lang.reflect.InvocationHandler;
import java.lang.reflect.Method;
import java.lang.reflect.Proxy;

public class MyInvercationHander implements InvocationHandler{

 private Object obj;

 public Object bind(Object obj){
  this.obj=obj;
  return Proxy.newProxyInstance(obj.getClass().getClassLoader(),obj.getClass().getInterfaces(),this);
 }

 @Override
 public Object invoke(Object proxy, Method method, Object[] args)
   throws Throwable {
  Object temp = method.invoke(this.obj, args);
  //這里做切面操作 比如我要加功能
  System.out.println("方法之前!");
  return temp;
 }

}

Person.java

復制代碼 代碼如下:

package _20140416_;

public class Person {
 private String name;
 private int age;

 public String getName() {
  return name;
 }

 public void setName(String name) {
  this.name = name;
 }

 public int getAge() {
  return age;
 }

 public void setAge(int age) {
  this.age = age;
 }

 public Person(String name, int age) {
  super();
  this.name = name;
  this.age = age;
 }

}

MainTest.java

復制代碼 代碼如下:

package _20140416_;

import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;
import java.util.Set;

public class 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> 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國")));
      String info = 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));
      short i = 1;
      System.out.println(i);
 }
}

相關(guān)文章

  • Spring JPA事務管理與自定義操作實例解析(最新推薦)

    Spring JPA事務管理與自定義操作實例解析(最新推薦)

    在Spring框架中,數(shù)據(jù)持久化操作常常與事務管理緊密相關(guān),本文將深入探討Spring Data JPA中的事務管理機制,并結(jié)合具體實例,展示如何自定義事務行為以滿足不同的業(yè)務需求,感興趣的朋友一起看看吧
    2024-12-12
  • SpringBoot2.7?WebSecurityConfigurerAdapter類過期配置

    SpringBoot2.7?WebSecurityConfigurerAdapter類過期配置

    這篇文章主要為大家介紹了SpringBoot2.7中WebSecurityConfigurerAdapter類過期應該如何配置,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2022-06-06
  • Java內(nèi)存溢出的幾個區(qū)域總結(jié)(注意避坑!)

    Java內(nèi)存溢出的幾個區(qū)域總結(jié)(注意避坑!)

    內(nèi)存溢出是指應用系統(tǒng)中存在無法回收的內(nèi)存或使用的內(nèi)存過多,最終使得程序運行要用到的內(nèi)存大于虛擬機能提供的最大內(nèi)存,下面這篇文章主要給大家介紹了關(guān)于Java內(nèi)存溢出的幾個區(qū)域,總結(jié)出來給大家提醒注意避坑,需要的朋友可以參考下
    2022-11-11
  • Java模仿微信實現(xiàn)零錢通簡易功能(兩種版本)

    Java模仿微信實現(xiàn)零錢通簡易功能(兩種版本)

    本文主要介紹了使用Java開發(fā)零錢通項目, 模仿微信實現(xiàn)簡易功能,可以完成收益入賬,消費,查看明細,退出系統(tǒng)等功能。文中一共介紹了兩種實現(xiàn)方法,快來學習吧
    2021-12-12
  • Java實現(xiàn)優(yōu)雅日期處理的方案詳解

    Java實現(xiàn)優(yōu)雅日期處理的方案詳解

    在我們的日常工作中,需要經(jīng)常處理各種格式,各種類似的的日期或者時間,下面我們就來看看如何使用java處理這樣的日期問題吧,感興趣的小伙伴可以跟隨小編一起學習一下
    2025-04-04
  • springboot解決XSS存儲型漏洞問題

    springboot解決XSS存儲型漏洞問題

    這篇文章主要介紹了springboot解決XSS存儲型漏洞問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2024-05-05
  • Java(若依)如何讀取Yml配置文件

    Java(若依)如何讀取Yml配置文件

    文章介紹了如何在Java若依框架中讀取Yml配置文件,包括定義配置字段、編寫讀取工具類以及注意事項,最后總結(jié)了個人經(jīng)驗
    2025-02-02
  • java分布式面試CAP分別代表含義分析

    java分布式面試CAP分別代表含義分析

    這篇文章主要為大家介紹了java分布式面試中關(guān)于CAP分別代表含義的問題分析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步
    2022-03-03
  • SpringBoot使用JdbcTemplate訪問操作數(shù)據(jù)庫基本用法

    SpringBoot使用JdbcTemplate訪問操作數(shù)據(jù)庫基本用法

    這篇文章主要介紹了SpringBoot使用JdbcTemplate訪問操作數(shù)據(jù)庫基本用法,Spring對數(shù)據(jù)庫的操作在jdbc上s面做了深層次的封裝,使用spring的注入功能,可以把DataSource注冊到JdbcTemplate之中。下文詳細內(nèi)容需要的小伙伴可以參考一下
    2022-02-02
  • 詳解Java中CAS機制的原理與優(yōu)缺點

    詳解Java中CAS機制的原理與優(yōu)缺點

    CAS?英文就是?compare?and?swap?,也就是比較并交換,這篇文章主要來和大家介紹一下Java中CAS機制的原理與優(yōu)缺點,感興趣的小伙伴可以了解一下
    2023-06-06

最新評論

克什克腾旗| 德惠市| 丘北县| 稷山县| 英德市| 胶州市| 天等县| 登封市| 宜昌市| 新田县| 泗阳县| 阿鲁科尔沁旗| 高州市| 房山区| 柳河县| 建始县| 格尔木市| 南和县| 甘泉县| 兖州市| 长顺县| 喜德县| 巴马| 收藏| 莲花县| 从江县| 观塘区| 厦门市| 莎车县| 休宁县| 修武县| 红桥区| 滁州市| 伊宁县| 东辽县| 明光市| 钟祥市| 广平县| 云浮市| 丘北县| 万宁市|