私は以下のコードを使用して複数の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();
}
}
上記のクラスを別のクラスから呼び出すにはどうすればよいですか? は、どのように私は別のクラスに合格しない各クラスの在庫
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
}
、店舗、私は顧客と呼ばれるPOJOクラスがあると?またはこれを行うためのより良い方法がある場合は?または、インターフェイスとしてtoStringを作成し、それを各クラスで実装してコンストラクタとして渡す方が良いでしょうか?
実際にメソッドがオブジェクトに属しているようにするには(どこかにある 'static'メソッドと比較して)、[default methods](https://docs.oracle.com/javase/tutorial/java/IandI/defaultmethods。html) – Michael