MyBatis PropertyTokenizer
2024-10-17 00:17:32
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);
}
}
最新文章
- Windows下磁盘分配操作
- WordPress建站和搭独立博客
- ACM-ICPC代码模板
- AD域的安装
- 今天连续几次被其他电脑客户端踢下线,也不知是否是ip冲突
- JS控制flash的播放
- Redis 客户端连接
- ThinkPHP第三天(公共函数Common加载,dump定义,模板文件,定义替换__PUBLIC__)
- eclipse 项目引入第三方jar包 3种方法
- echarts 折线拐点收藏
- XAMPP 安装时 MySQL 无法启动,且提示端口占用。
- Ubuntu下将python从2.7升级到3.5
- liunx java环境搭建
- css3 制作一个遮罩
- [剑指Offer]9-用两个栈实现队列
- 1085. Perfect Sequence
- Linux下的反调试技术
- 常用数据库ID格式
- 《微赢微信公众平台系统5月14最新破解高级运营版+水果机+邀请函+微汽车+微食品+用户CRM》
- Redis开启远程访问及密码认证
热门文章
- ajax来获取JWT的token
- Python3 并发编程2
- 【Git】Windows 配置 SSH-Key
- 解决logstash.outputs.elasticsearch[main] Could not index event to Elasticsearch status 404
- B站上传字幕问题解决
- SSM框架整合之练习篇
- Hack the 21LTR: Scene 1 VM (Boot to Root)
- 关于选用ccflow你所担心的问题都在这里为您解答
- com.android.tools.aapt2.Aapt2Exception: AAPT2 error: check logs for details
- 二、计算机数据表示&;&;校验码(简单了解)