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: 
The `Inherited fields` option will turn out if:

* You are extending a class with inheritable fields, i.e. `public`, `protected` (or package-protected within the same package)
* You are generating the `toString` method contextually to a right-click when your cursor is within the child class

The latter can be confusing: it's not where you right-click, but where your actual cursor is, that determines for which class the `toString` (et al.) method should be generated.
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();

```

}