У меня очень большой класс модели, я хочу создать метод toString для этой модели.Но в этой модели много полей, поэтому я пытаюсь использовать общую модель и отражение Java.Но вывод включает в себя имя поля подмодели, возможно ли это удалить?
У меня есть 1 класс абстрактной модели, как показано ниже:
import java.lang.reflect.*;
public abstract class CommonEntity {
public String getInsertString() {
StringBuilder sb = new StringBuilder();
try {
Field[] fields = this.getClass().getDeclaredFields();
for (Field field : fields) {
field.setAccessible(true);
Object value = field.get(this);
if (value != null) {
sb.append("\"" + value.toString() + "\",");
}
}
} catch (Exception e) {
System.out.println(e);
}
return sb.toString();
}
}
И 2 другие модели расширяют это общее
test:
@Data
public class test extends CommonEntity {
private String name;
private String last;
private test2 test;
}
test2:
@Data
public class test2 extends CommonEntity {
private String name2;
private String last2;
}
И основной класс:
public static void main(String[] args) {
test a = new test();
a.setName("1");
a.setLast("2");
test2 b = new test2();
b.setLast2("3");
b.setName2("4");
a.setTest(b);
System.out.println(a.getInsertString());
}
Консольный вывод:
"1","2","test2(name2=4, last2=3)",
Мое ожидание:
"1","2","4","3,
Можно ли удалить
test2(name2
и
last2
в выводе.