如何重构此示例以避免需要在每个数据类型中检查isInstance的这种情况?有什么可以遵循的模式吗?
public interface GenericData {}
public interface IntegerData extends GenericData{
public Integer Data();
}
public interface StringData extends GenericData{
public String Data();
}
public interface Client {
public boolean LoadData(GenericData data);
}
public class IntegerClientImpl implements Client{
public boolean LoadData(GenericData data){
return IntegerData.class.isInstance(data);
};
}
发布于 2016-04-04 04:15:14
您可以使用泛型。
public interface Client<Data extends GenericData> {
public boolean LoadData(Data data);
}
public class IntegerClientImpl implements Client<IntegerData> {
@Override
public boolean LoadData(IntegerData data){
// ...
}
}
https://stackoverflow.com/questions/36402019
复制