次のコードのリファクタリングについて助けが必要です。このコードには、修正したい主な問題が 2 つあります。
public interface Rule {
public void execute(DataProvider dataProvider);
}
public interface DataProvider {
// No common functions as of now
}
public interface Rule1dataProvider extends DataProvider {
// Functions required by Rule1
}
public class Rule1 implements Rule {
public void execute(DataProvider dataProvider) {
ADataProvider rule1DataProvider = <ADataProvider>dataProvider;
// Other logic
}
}
public class EntityADataProvider implements Rule1DataProvider, Rule2DataProvider... {
// Overrides functions of Rule 1 and Rule2
}
ここでジェネリックを使用しようとしましたが、型キャストを排除するためにそれらを使用する正しい方法を理解できませんでした