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.
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).