Class PathExpression

java.lang.Object
org.aoju.bus.core.beans.PathExpression
All Implemented Interfaces:
Serializable

public class PathExpression extends Object implements Serializable
Bean路径表达式,用于获取多层嵌套Bean中的字段值或Bean对象 根据给定的表达式,查找Bean中对应的属性值对象 表达式分为两种:
  1. .表达式,可以获取Bean对象中的属性(字段)值或者Map中key对应的值
  2. []表达式,可以获取集合等对象中对应index的值
Since:
Java 17+
Author:
Kimi Liu
See Also:
  • Field Summary

    Fields
    Modifier and Type
    Field
    Description
    protected List<String>
     
  • Constructor Summary

    Constructors
    Constructor
    Description
    PathExpression(String expression)
    构造
  • Method Summary

    Modifier and Type
    Method
    Description
    create(String expression)
    解析Bean路径表达式为Bean模式 Bean表达式,用于获取多层嵌套Bean中的字段值或Bean对象 根据给定的表达式,查找Bean中对应的属性值对象 表达式分为两种: .表达式,可以获取Bean对象中的属性(字段)值或者Map中key对应的值 []表达式,可以获取集合等对象中对应index的值
    get(Object bean)
    获取Bean中对应表达式的值
    获取表达式解析后的分段列表
    void
    set(Object bean, Object value)
    设置表达式指定位置(或filed对应)的值 若表达式指向一个List则设置其坐标对应位置的值,若指向Map则put对应key的值,Bean则设置字段的值 注意:
     

    Methods inherited from class java.lang.Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
  • Field Details

    • patternParts

      protected List<String> patternParts
  • Constructor Details

    • PathExpression

      public PathExpression(String expression)
      构造
      Parameters:
      expression - 表达式
  • Method Details

    • create

      public static PathExpression create(String expression)
      解析Bean路径表达式为Bean模式 Bean表达式,用于获取多层嵌套Bean中的字段值或Bean对象 根据给定的表达式,查找Bean中对应的属性值对象 表达式分为两种:
      1. .表达式,可以获取Bean对象中的属性(字段)值或者Map中key对应的值
      2. []表达式,可以获取集合等对象中对应index的值

      表达式栗子:

       persion
       persion.name
       persons[3]
       person.friends[5].name
       ['person']['friends'][5]['name']
       
      Parameters:
      expression - 表达式
      Returns:
      PathExpression
    • getPatternParts

      public List<String> getPatternParts()
      获取表达式解析后的分段列表
      Returns:
      表达式分段列表
    • get

      public Object get(Object bean)
      获取Bean中对应表达式的值
      Parameters:
      bean - Bean对象或Map或List等
      Returns:
      值, 如果对应值不存在, 则返回null
    • set

      public void set(Object bean, Object value)
      设置表达式指定位置(或filed对应)的值 若表达式指向一个List则设置其坐标对应位置的值,若指向Map则put对应key的值,Bean则设置字段的值 注意:
       1. 如果为List,如果下标不大于List长度,则替换原有值,否则追加值
       2. 如果为数组,如果下标不大于数组长度,则替换原有值,否则追加值
       
      Parameters:
      bean - Bean、Map或List
      value - 值
    • toString

      public String toString()
      Overrides:
      toString in class Object