<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;
}
Memanggil toString
dari MyClass menghasilkan output ini:
Kelasku(super=Kelas Super(id=1, tanggal=00/00/0000), bidang=tes)
Apakah mungkin untuk mendapatkan sesuatu seperti ini ...
KelasSaya(id=1, tanggal=00/00/0000, bidang=tes)
... secara langsung, tanpa memanipulasi string keluaran?
Bersulang!
Tidak juga; kami harus melakukan resolusi untuk melakukannya, dan kami tidak ingin pergi ke sana untuk dasar-dasar lombok, karena resolusi sangat rumit (masalah kinerja dan lebih banyak bug).
Sekarang, mungkin saja menggunakan sesuatu seperti
@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;
}
Ini jelas hanya dapat dilakukan untuk sejumlah kecil bidang (belum diuji).
Ide yang lebih baik mungkin
@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;
}
" "
sebagai nama mungkin berfungsi atau tidak.super.toString()
(atau terlihat seperti) dihasilkan lombok.MyClass( id=1, date=00/00/0000, field=test)
dengan satu kosong terlalu banyak.Lihat entri wiki terkait: https://github.com/rzwitserloot/lombok/wiki/FEATURE-IDEA :-@SuperToString
Komentar yang paling membantu
Sekarang, mungkin saja menggunakan sesuatu seperti
Ini jelas hanya dapat dilakukan untuk sejumlah kecil bidang (belum diuji).
Ide yang lebih baik mungkin
" "
sebagai nama mungkin berfungsi atau tidak.super.toString()
(atau terlihat seperti) dihasilkan lombok.MyClass( id=1, date=00/00/0000, field=test)
dengan satu kosong terlalu banyak.