因此,假设我定义了以下内容:
public interface IExportTool {
void export(IReport iReport);
}
然后尝试使用它:
public class KibanaExporter implements IExportTool{
public void export(IReport kibana) {
kibana = (Kibana) kibana;
((Kibana) kibana).toJSON();
}
}
但是,还有其他一些类也会再次做类似的事情:
public class MetricExporter implements IExportTool{
public void export(IReport metric) {
metric = (Metric) metric;
((Metric) metric).toJSON(); // might be something else here like toXML etc
}
}
请注意,Kibana和Metric都在实现IReport< KibanaRow>和IReport< MetricRow> IReport界面如下所示:
public interface IReport {
void addRow(T row);
}
我不喜欢所有这些转换,这感觉不正确,也无法自动完成,所以有什么建议如何正确执行吗?