ToString wird nicht richtig erstellt, wenn Lomboks Daten und SuperBuilder verwendet werden [Duplikat]
Posted: 17 Jan 2025, 10:57
Wenn ich meine untergeordnete Klasse debugge, kann ich sehen, dass alle Werte richtig eingestellt sind. Der toString enthält jedoch nur Werte der untergeordneten Klasse, nicht der übergeordneten Klasse. Ich möchte, dass der toString auch die übergeordneten Felder enthält, jedoch auf derselben Ebene wie das untergeordnete Feld (z. B. nicht verschachtelt), ohne dass so viel manuelle Arbeit erforderlich ist. Wie kann ich das erreichen?
Das habe ich:
Wenn ich es so baue
im Debugger sehe ich das

aber ich möchte, dass es so aussieht:
Ich habe auch versucht, @ToString(callSuper = true) zu meiner untergeordneten Klasse hinzuzufügen, in der die Felder angezeigt werden, etwa so

aber ich verschachtele die übergeordneten Attribute nicht.< /p>
Gibt es einen anderen Weg? um das zu lösen, ohne dass ich den toString manuell vollständig schreiben muss?
Das habe ich:
Code: Select all
@Data
@SuperBuilder(toBuilder = true)
@EqualsAndHashCode(callSuper = true)
public class Foo extends Bar{
private int field2;
}
@Data
@AllArgsConstructor
@NoArgsConstructor
@SuperBuilder(toBuilder = true)
public class Bar {
private boolean field1;
}
Code: Select all
var foo = Foo.builder().field1(true).field2(12).build();
aber ich möchte, dass es so aussieht:
Code: Select all
Foo(field1=true, field2=12)

aber ich verschachtele die übergeordneten Attribute nicht.< /p>
Gibt es einen anderen Weg? um das zu lösen, ohne dass ich den toString manuell vollständig schreiben muss?