protected static String typeName(Type t) {
    if (t instanceof Class<?>) {
      Class<?> c = (Class<?>) t;
      if (c.isArray()) {
        return typeName(c.getComponentType()) + "[]";
      } else {
        return c.getName();
      }
    }
    return t.toString();
  }
Builder if the target class is an interface and contains no methods other than getters. Then we
can make an instance using a dynamic proxy that forwards the getters to the source
CompositeData
geode-core/src/main/java/org/apache/geode/management/internal/OpenTypeConverter.java