java如何使抽象类更简洁?
我有一个关于爬虫的抽象类:
public abstract class AbstractCrawler {
public AbstractCrawler(){
initialize();
}
protected abstract void initialize();
protected abstract void work();
protected abstract void saveAndUpdate(Object obj);
}
如您所见,“saveAndUpdate”的抽象方法需要Object的参数,因为每个爬虫扩展这个抽象将保存或更新不同的数据类型,如下所示:
public class UserCrawler extends AbstractCrawler{
@Override
protected void saveAndUpdate(List<User> obj) {
// TODO Auto-generated method stub
}
}
和爬虫的类别:
public class CommentCrawler extends AbstractCrawler{
@Override
protected void saveAndUpdate(List<Comment> obj) {
// TODO Auto-generated method stub
}
}
很明显,就这么做吧。使抽象类更加简洁
# 1 楼答案
你可以使用内置的泛型支持,例如
这允许实现指定他们希望使用的数据类型
另外,从构造函数调用方法时要小心,因为该方法可能依赖的内容可能尚未初始化
查看Lesson: Generics了解更多详细信息