示例#1
0
  /**
   * Returns the name of the given property. Returns null if the index is out of the range [0 ...
   * numProperties() - 1 ]
   */
  public String getName(int index) {
    if (auxillary != null) return auxillary.getName(index);
    if (index < 0 || index >= numProperties()) return null;

    try {
      if (nameMethods.get(index) != null)
        return (String) (((Method) (nameMethods.get(index))).invoke(object, new Object[0]));
    } catch (Exception e) {
      e.printStackTrace();
      return null;
    }

    String name = ((Method) (getMethods.get(index))).getName();
    if (name.startsWith("is")) return name.substring(2);
    else if (name.equals("longValue")) // Integers of various kinds
    return "Value";
    else if (name.equals("doubleValue")) // Other Numbers
    return "Value";
    else if (name.equals("booleanValue")) // Booleans
    return "Value";
    else if (name.equals("toString")) // Strings, StringBuffers
    return "Value";
    else return name.substring(3); // "get", "set"
  }