Hello all,
I'm getting crazy because I can't understand what I'm doing wrong.

Consider this (it can be pasted on the Groovy console):

|import groovy.transform.TupleConstructor||
||
||public class Foobar {||
||  private Long id;||
||||
||  public Long getId() { return this.id; }||
||  public void setId(Long id) { this.id = id; }||
||}||
||
||@TupleConstructor(includeSuperProperties=true)||
||class Ext extends Foobar {||
||  String foo||
||}||
||
||Ext.constructors.each {||
||    println it||
||}||
||println 'end'|

The result is just:

public Ext(java.lang.String)
public Ext()
end

But isn't |id| a property (as per the Java beans conventions)???

If I replace |includeSuperProperties=true| with |includeSuperFields=true|, I get the expected result:

public Ext()
public Ext(java.lang.Long)
public Ext(java.lang.Long,java.lang.String)
end

But in more complex cases, |includeSuperFields=true| will include unwanted fields that are not actually properties.

What am I doing wrong?

Thanks in advance,
Mauro

Reply via email to