<strong i="5">@ToString</strong>
class SuperClass {
private <strong i="6">@Getter</strong> <strong i="7">@Setter</strong> int id;
private <strong i="8">@Getter</strong> <strong i="9">@Setter</strong> String date;
}
@ToString(callSuper = true)
class MyClass extends SuperClass {
private <strong i="12">@Getter</strong> <strong i="13">@Setter</strong> String field;
}
Вызов toString
из MyClass приводит к следующему результату:
MyClass (super = SuperClass (id = 1, дата = 00/00/0000), поле = тест)
Возможно ли получить что-то вроде этого...
MyClass (id = 1, дата = 00/00/0000, поле = тест)
... напрямую, без манипулирования выходной строкой?
ваше здоровье!
Не совсем; мы должны были бы сделать разрешение, чтобы осуществить это, и мы не хотим идти туда для основ ломбока, потому что разрешение очень сложно (проблемы с производительностью и гораздо больше ошибок).
Теперь можно использовать что-то вроде
@ToString(callSuper = false)
class MyClass extends SuperClass {
@ToString.Include(name="id")
private int dummyId() {
return id;
}
@ToString.Include(name="date")
private int dummyDate() {
return date;
}
private <strong i="6">@Getter</strong> <strong i="7">@Setter</strong> String field;
}
Это, очевидно, выполнимо только для небольшого количества полей (непроверенных).
Лучшей идеей может быть
@ToString(callSuper = false)
class MyClass extends SuperClass {
@ToString.Include(name=" ")
private int dummySuper() {
return super.toString().replace(".*?\\(((?s:.*))\\)$", "$1");
}
private <strong i="12">@Getter</strong> <strong i="13">@Setter</strong> String field;
}
" "
в качестве имени может работать, а может и не работать.super.toString()
сгенерирован (или выглядит так) ломбоком.MyClass( id=1, date=00/00/0000, field=test)
с одним пробелом слишком много.См. соответствующую запись в вики : https://github.com/rzwitserloot/lombok/wiki/FEATURE-IDEA:-@SuperToString
Самый полезный комментарий
Теперь можно использовать что-то вроде
Это, очевидно, выполнимо только для небольшого количества полей (непроверенных).
Лучшей идеей может быть
" "
в качестве имени может работать, а может и не работать.super.toString()
сгенерирован (или выглядит так) ломбоком.MyClass( id=1, date=00/00/0000, field=test)
с одним пробелом слишком много.