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

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

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

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

直接上代碼

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; // 通過這個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.");
 }
}

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

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

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

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

相關(guān)文章

  • idea創(chuàng)建包含多個springboot module的maven project的方法

    idea創(chuàng)建包含多個springboot module的maven project的方法

    這篇文章主要介紹了idea創(chuàng)建包含多個springboot module的maven project的方法,本文給大家介紹的非常詳細,對大家的學(xué)習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-09-09
  • 詳解java中import的作用

    詳解java中import的作用

    這篇文章主要介紹了java中import作用,import與package機制相關(guān),這里先從package入手,再講述import以及static import的作用。
    2021-04-04
  • Java8-Stream流操作List去重問題

    Java8-Stream流操作List去重問題

    這篇文章主要介紹了Java8-Stream流操作List去重問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-11-11
  • Java的MyBatis框架中XML映射緩存的使用教程

    Java的MyBatis框架中XML映射緩存的使用教程

    MyBatis程序在做好XML映射后能夠有緩存的功能,這樣映射過SQL語句的配置以后就可以拿過來直接用了,這里我們來一起總結(jié)一下Java的MyBatis框架中XML映射緩存的使用教程
    2016-06-06
  • SpringBoot登錄用戶權(quán)限攔截器

    SpringBoot登錄用戶權(quán)限攔截器

    這篇文章主要介紹了SpringBoot登錄用戶權(quán)限攔截器,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習或者工作具有一定的參考學(xué)習價值,需要的朋友們下面隨著小編來一起學(xué)習學(xué)習吧
    2021-03-03
  • Java讀取文本文件的各種方法

    Java讀取文本文件的各種方法

    這篇文章主要介紹了Java讀取文本文件的各種方法,在 Java 中有多種方法可以讀取純文本文件,例如你可以使用FileReader、BufferedReader或Scanner來讀取文本文件,感興趣的小伙伴和小編一起進入文章了解更多內(nèi)容吧,希望能幫助到大家
    2021-11-11
  • SpringBoot中使用Redisson的實現(xiàn)示例

    SpringBoot中使用Redisson的實現(xiàn)示例

    Redission是一個強大的Java庫,用于構(gòu)建和管理分布式系統(tǒng)中的緩存和任務(wù)調(diào)度,本文主要介紹了SpringBoot中使用Redisson的實現(xiàn)示例,感興趣的可以了解一下
    2023-12-12
  • java使用des加密解密示例分享

    java使用des加密解密示例分享

    java使用des加密解密示例,適合java語言的所有平臺,與.net等平臺的加密解密兼容
    2014-02-02
  • SpringBoot集成Mybatis+xml格式的sql配置文件操作

    SpringBoot集成Mybatis+xml格式的sql配置文件操作

    這篇文章主要介紹了SpringBoot集成Mybatis+xml格式的sql配置文件操作,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-07-07
  • java實現(xiàn)文件導(dǎo)入導(dǎo)出

    java實現(xiàn)文件導(dǎo)入導(dǎo)出

    這篇文章主要介紹了java實現(xiàn)文件導(dǎo)入導(dǎo)出的方法和具體示例代碼,非常的簡單實用,有需要的小伙伴可以參考下
    2016-04-04

最新評論

博客| 佛学| 余姚市| 乐亭县| 新绛县| 昌邑市| 南丰县| 故城县| 噶尔县| 承德县| 鄢陵县| 岫岩| 高陵县| 施秉县| 文安县| 陵水| 塔城市| 旺苍县| 玉环县| 革吉县| 镇江市| 紫金县| 白山市| 五常市| 邵东县| 巩义市| 义乌市| 桃源县| 石城县| 衡山县| 沅江市| 黑水县| 偃师市| 汝城县| 祁阳县| 仙居县| 海淀区| 柯坪县| 乌鲁木齐市| 台北县| 德庆县|