У меня есть несколько классов pojo, используя код ниже.Общий класс для реализации ToString
public class ToStringImpl {
public String toString(){
StringBuilder result = new StringBuilder();
String newLine = "\n";
result.append(this.getClass().getName());
result.append(" Data {");
result.append(newLine);
//determine fields declared in this class only (no fields of superclass)
Field[] fields = this.getClass().getDeclaredFields();
//print field names paired with their values
for (Field field : fields ) {
result.append(" ");
try {
result.append(field.getName());
result.append(": ");
//requires access to private field:
result.append(field.get(this));
} catch (IllegalAccessException ex) {
System.out.println(ex);
}
result.append(newLine);
}
result.append("}");
return result.toString();
}
}
Как я могу назвать класс класса из разных классов? Предположим, у меня есть классы POJO называемые клиент, магазин, инвентарь
public class Customer {
private String name;
private String address;
...getter...setter...
public String toString(){
ToStringImpl log = new ToStringImpl();
//how do I pass different classes here?
return log.toString();
}
}
public class Store {
private String logo;
private String type;
....getter...setter...
}
public class Inventory {
private boolean isAvailable;
private long index;
...getter...setter
}
для каждого класса, как я пройти другой класс? или если есть лучший способ сделать это? или было бы лучше создать toString как интерфейс и реализовать его в каждом классе и передать его как конструктор?
Если вы действительно хотите, чтобы метод принадлежал объектам (по сравнению с методом 'static', где-то где-то), попробуйте изучить [методы по умолчанию] (https://docs.oracle.com/javase/tutorial/java/IandI/defaultmethods.html) на интерфейсах – Michael