MyBatis PropertyTokenizer
Posted 魔有追求
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了MyBatis PropertyTokenizer相关的知识,希望对你有一定的参考价值。
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);
}
}
以上是关于MyBatis PropertyTokenizer的主要内容,如果未能解决你的问题,请参考以下文章
Mybatis 源码学习-反射工具(Property 工具)
[MyBatis源码分析 - 反射器模块 - 组件五] Property 工具集
Mybatis-Plus:了解Mybatis-Plus快速开始(Mybatis + Mybatis-Plus,Mybatis-Plus自动做了属性映射)