I would rather prefer a common method than the copy pasted `if`. The downside is the number of parameters that the method would need, which should be the ones that you mentioned plus the default value to print (if it differs from the current value). In some cases that would make the call not that readable though, but would also prevent us from needing this: 
```
if (....) {
    .....
} else if (includeDefaults) {
   .....
}
```
The other downside is definitely that we would need multiple signatures for all the different types.