欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

MyBatis框架迭代器模式實(shí)現(xiàn)原理解析

 更新時(shí)間:2020年03月12日 13:31:58   作者:我太難了008  
這篇文章主要介紹了MyBatis框架迭代器模式實(shí)現(xiàn)原理解析,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下

迭代器模式,一直沒用過,也不會(huì)用。恰巧MyBatis框架中也使用到了迭代器模式,而且看起來(lái)還比較簡(jiǎn)單,在以后的工作中,若有需要咱們可模仿它的套路來(lái)干。

直接上代碼

import java.util.Iterator;

/**
 * @author Clinton Begin
 */
public class PropertyTokenizer implements Iterator<PropertyTokenizer> {
 private String name;
 private final String indexedName;
 private String index;
 private final String children; // 通過這個(gè)children屬性建立前后兩次迭代的關(guān)系

 public PropertyTokenizer(String fullname) {
  int delim = fullname.indexOf('.');
  if (delim > -1) {
   name = fullname.substring(0, delim);
   children = fullname.substring(delim + 1);
  } else {
   name = fullname;
   children = null;
  }
  indexedName = name;
  delim = name.indexOf('[');
  if (delim > -1) {
   index = name.substring(delim + 1, name.length() - 1);
   name = name.substring(0, delim);
  }
 }

 public String getName() {
  return name;
 }

 public String getIndex() {
  return index;
 }

 public String getIndexedName() {
  return indexedName;
 }

 public String getChildren() {
  return children;
 }

 @Override
 public boolean hasNext() {
  return children != null;
 }

 @Override
 public PropertyTokenizer next() {
  return new PropertyTokenizer(children);
 }

 @Override
 public void remove() {
  throw new UnsupportedOperationException("Remove is not supported, as it has no meaning in the context of properties.");
 }
}

實(shí)現(xiàn) Iterator 接口就很方便的弄出一個(gè)迭代器,然后就可以使用hasNext和next方法了。

業(yè)務(wù)邏輯咱們不用管,只需要知道在調(diào)用next方法時(shí),new了一個(gè) PropertyTokenizer 實(shí)例, 而這個(gè)實(shí)例有個(gè) children屬性, hasNext方法就是通過判斷這個(gè)children屬性是否為空來(lái)作為結(jié)束迭代的判斷條件。

具體的實(shí)現(xiàn)的我們不管,只需要領(lǐng)悟兩點(diǎn): 1. next需要干啥; 2. hasNext的如何判斷?

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • spring接口通過配置支持返回多種格式(xml,json,html,excel)

    spring接口通過配置支持返回多種格式(xml,json,html,excel)

    這篇文章主要給大家介紹了關(guān)于spring接口如何通過配置支持返回多種格式(xml,json,html,excel)的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),需要的朋友可以參考借鑒,下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧。
    2017-12-12
  • java中實(shí)現(xiàn)map與對(duì)象相互轉(zhuǎn)換的幾種實(shí)現(xiàn)

    java中實(shí)現(xiàn)map與對(duì)象相互轉(zhuǎn)換的幾種實(shí)現(xiàn)

    這篇文章主要介紹了java中實(shí)現(xiàn)map與對(duì)象相互轉(zhuǎn)換的幾種實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2020-07-07
  • 輕松掌握J(rèn)ava享元模式

    輕松掌握J(rèn)ava享元模式

    這篇文章主要幫助大家輕松掌握J(rèn)ava享元模式,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2016-09-09
  • Java基于NIO實(shí)現(xiàn)聊天室功能

    Java基于NIO實(shí)現(xiàn)聊天室功能

    這篇文章主要為大家詳細(xì)介紹了Java基于NIO實(shí)現(xiàn)聊天室功能,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2021-11-11
  • Java 對(duì) Cookie增刪改查的實(shí)現(xiàn)示例

    Java 對(duì) Cookie增刪改查的實(shí)現(xiàn)示例

    這篇文章主要介紹了Java 對(duì) Cookie增刪改查的實(shí)現(xiàn)示例,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2019-05-05
  • Java中的?HTTP?協(xié)議原理詳解

    Java中的?HTTP?協(xié)議原理詳解

    這篇文章主要介紹了Java中的?HTTP?協(xié)議原理詳解,HTTP超文本傳輸協(xié)議,下文簡(jiǎn)稱?HTTP,它的作用是用于實(shí)現(xiàn)服務(wù)器端和客戶端的數(shù)據(jù)傳輸?shù)?/div> 2022-07-07
  • SpringBoot中的@PostConstruct注解詳細(xì)解析

    SpringBoot中的@PostConstruct注解詳細(xì)解析

    這篇文章主要介紹了SpringBoot中的@PostConstruct注解詳細(xì)解析,@PostConstruct注解,主要用于在Spring容器啟動(dòng)時(shí)執(zhí)行某些操作或者任務(wù),@PostConstruct注解一般放在BEAN的方法上,一旦BEAN初始化完成之后,將會(huì)調(diào)用這個(gè)方法,需要的朋友可以參考下
    2024-01-01
  • Java基礎(chǔ)之方法重寫和多態(tài)示例

    Java基礎(chǔ)之方法重寫和多態(tài)示例

    這篇文章主要介紹了Java基礎(chǔ)之方法重寫和多態(tài),結(jié)合實(shí)例形式分析了java方法重寫和多態(tài)的相關(guān)原理與使用技巧,需要的朋友可以參考下
    2019-08-08
  • SpringBoot中的@Component注解源碼

    SpringBoot中的@Component注解源碼

    在SpringBoot中,@Component注解用于標(biāo)識(shí)一個(gè)類為Bean,并由Spring進(jìn)行管理,它需要配合@ComponentScan注解使用,后者負(fù)責(zé)掃描包含@Component的類,并進(jìn)行自動(dòng)裝配,本文給大家介紹SpringBoot中的@Component注解源碼,感興趣的朋友一起看看吧
    2024-01-01
  • spring?cloud?gateway中配置uri三種方式

    spring?cloud?gateway中配置uri三種方式

    gateway?組件是SpringCloud?組件中的網(wǎng)關(guān)組件,主要是解決路由轉(zhuǎn)發(fā)的問題,跟nginx有點(diǎn)類似,區(qū)別是nginx多用在前端上,gateway用在后端上,本文給大家介紹的非常詳細(xì),需要的朋友參考下吧
    2023-08-08

最新評(píng)論