PropertyTokenizer

package org.apache.ibatis.reflection.property;
import java.util.Iterator;
/*
例1: 参数: user[1].linkman.name
children=linkman.name
indexedName=user[1]
name=user
index=1
例2: 参数: user
children=null
indexedName=user
name=user
index=null
hasNext()判断是否有子属性,next()获取子属性。
*/
public class PropertyTokenizer implements Iterator<PropertyTokenizer> {
private String name; //名称
private final String indexedName; //带索引的名称
private String index; //索引
private final String children; //子名称 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);
}
} @Override
public boolean hasNext() {
return children != null;
} @Override
public PropertyTokenizer next() {
return new PropertyTokenizer(children);
} }

最新文章

  1. Windows下磁盘分配操作
  2. WordPress建站和搭独立博客
  3. ACM-ICPC代码模板
  4. AD域的安装
  5. 今天连续几次被其他电脑客户端踢下线,也不知是否是ip冲突
  6. JS控制flash的播放
  7. Redis 客户端连接
  8. ThinkPHP第三天(公共函数Common加载,dump定义,模板文件,定义替换__PUBLIC__)
  9. eclipse 项目引入第三方jar包 3种方法
  10. echarts 折线拐点收藏
  11. XAMPP 安装时 MySQL 无法启动,且提示端口占用。
  12. Ubuntu下将python从2.7升级到3.5
  13. liunx java环境搭建
  14. css3 制作一个遮罩
  15. [剑指Offer]9-用两个栈实现队列
  16. 1085. Perfect Sequence
  17. Linux下的反调试技术
  18. 常用数据库ID格式
  19. 《微赢微信公众平台系统5月14最新破解高级运营版+水果机+邀请函+微汽车+微食品+用户CRM》
  20. Redis开启远程访问及密码认证

热门文章

  1. ajax来获取JWT的token
  2. Python3 并发编程2
  3. 【Git】Windows 配置 SSH-Key
  4. 解决logstash.outputs.elasticsearch[main] Could not index event to Elasticsearch status 404
  5. B站上传字幕问题解决
  6. SSM框架整合之练习篇
  7. Hack the 21LTR: Scene 1 VM (Boot to Root)
  8. 关于选用ccflow你所担心的问题都在这里为您解答
  9. com.android.tools.aapt2.Aapt2Exception: AAPT2 error: check logs for details
  10. 二、计算机数据表示&amp;&amp;校验码(简单了解)