Question: I want to generate toString() method for a class extending an other one. But in generate toString() dialog, there is no checkbox for inherited fields (see picture below)

![enter image description here](https://i.stack.imgur.com/CNJVk.jpg)

What's the problem here ?

Answer: 
Bit late, but consider using the `reflectionToString` method in the [ToStringBuilder class in the Apache Commons](http://commons.apache.org/proper/commons-lang/apidocs/org/apache/commons/lang3/builder/ToStringBuilder.html#reflectionToString(java.lang.Object)) library rather than implementing your own `toString` method for each class. You can use it like this:

```
public String toString() {
    ToStringBuilder.reflectionToString(this)
}

```

It'll dynamically generate a `String` based on all the fields in your class, including those in any superclasses.

You can also tune the output a bit if you want different behaviour for some cases (excluding some fields, not including inherited fields etc).
I know this is slightly off-topic, but someone might prefer the following code:

```
public String toString() {
   StringBuilder toReturn = new StringBuilder("\r\n-------------\r\n");
   Class<?> c = this.getClass();
   toReturn.append(c.getName()).append("\r\n");
   Method[] methods = c.getMethods();
   for (Method method : methods) {
     if (method.getName().startsWith("get") && !method.getName().equals("getClass")) {
       Object obj = new String("no value");
       try {
         obj = method.invoke(this, (Object[]) null);
       } catch (Throwable e) {
       }
       toReturn.append(method.getName()).append(" -> ").append(obj).append("\r\n");
     }
   }
   toReturn.append("-------------\r\n");
   return toReturn.toString();

```

}