code: public String getTypeBeanErased() {
          if (isBeanGenericType()) {
              for (int i = 0; i < bean.getTypeGenericCount(); i++) {
                  if (type.equals(bean.getTypeGenericName(i, false))) {
                      return bean.getTypeGenericErased(i);
                  }
              }
          }
          String generic = getTypeGenericsSimple();
          if (generic.isEmpty()) {
              return type;
          }
          StringTokenizer tkn = new StringTokenizer(generic, ",");
          List<String> altered = new ArrayList<>();
          while (tkn.hasMoreTokens()) {
              String genericType = tkn.nextToken().trim();
              String erased = genericType;
              if (bean.isTypeGenerifiedBy(genericType)) {
                  for (int i = 0; i < bean.getTypeGenericCount(); i++) {
                      if (genericType.equals(bean.getTypeGenericName(i, false))) {
                          erased = bean.getTypeGenericErased(i);
                      }
                  }
              }
              altered.add(erased);
          }
          return getTypeRaw() + "<" + altered.stream().collect(joining(", ")) + ">";
      }
docs: Gets the type of the property, erasing generics attached to the bean.
  {@code Foo<T>} will return {@code Foo<Number>} where {@code T extends Number}.
  @return the raw type