class AbstractCollector<T> extends AbstractRequester implements
        Supplier<T>,
        CookieProcessor {

    /**
     * 收集器收集逻辑,由子类实现
     */
    protected abstract T collectLogic() throws Exception;


    public AbstractCollector(TimeWaitingStrategy strategy) {
        this(strategy, URLMapper.MAIN_PAGE.toString());
    }


    /**
     * @param strategy 超时等待策略（null则设置为默认等待策略）
     * @param webSite 站点（默认为雪球网首页，可拓展其他财经网站--作用为获取cookie）
     */
    public AbstractCollector(TimeWaitingStrategy strategy, String webSite) {
        super(strategy, webSite);
    }


    @Override
    public T get() {<FILL_FUNCTION_BODY>}
}

        System.out.println(getClass().getSimpleName() + " collecting...");
        T res = null;
        int retryTime = this.strategy.retryTimes();
        try {
            int loopTime = 1;
            while (retryTime > loopTime) {
                try {
                    res = collectLogic();
                    break;
                } catch (Exception e) {
                    if(!(e instanceof IOException)) throw e;
                    System.out.println("Collector: Network busy Retrying -> " + loopTime + " times");
                    updateCookie(webSite);
                    this.strategy.waiting(loopTime++);
                }
            }
        } catch (Exception e) {
            e.printStackTrace();
        }
        return res;
    
<methods>public void <init>(org.decaywood.timeWaitingStrategy.TimeWaitingStrategy, java.lang.String) <variables>protected ObjectMapper mapper,protected org.decaywood.timeWaitingStrategy.TimeWaitingStrategy strategy,protected java.lang.String webSite