code: public Object getProperty(final Object obj, final String property) {
  
          ArgUtils.notEmpty(property, "property");
  
          final PropertyPath path = parseProperty(property);
          Object targetObj = obj;
          for(Token token : path.getPathAsToken()) {
  
              targetObj = accessProperty(targetObj, token);
              if(targetObj == null && ignoreNull) {
                  return null;
              }
  
          }
          return targetObj;
  
      }
docs: プロパティの値を取得する。
  
  @param obj 取得元となるオブジェクト。
  @param property プロパティの式。
  @return プロパティの値。
  @throws IllegalArgumentException peropety is null or empty.
  @throws PropertyAccessException 存在しないプロパティを指定した場合など。
  @throws NullPointerException アクセスしようとしたプロパティがnullの場合。
  ただし、オプション ignoreNull = falseのとき。
  @throws IndexOutOfBoundsException リスト、配列にアクセスする際に存在しないインデックスにアクセスした場合。
  ただし、オプションignoreNotFoundKey = falseのとき。
  @throws IllegalStateException マップにアクセスする際に存在しないキーにアクセスした場合。
  ただし、オプションignoreNotFoundKey = falseのとき。