class SecondCacheService implements CacheService {
    private CacheService cache1;
    private CacheService cache2;
    private int bufferSeconds;


    /**
     * @param cache1 一级缓存
     * @param cache2 二级缓存
     */
    public SecondCacheService(CacheService cache1, CacheService cache2) {
        this(cache1, cache2, 5);
    }

    /**
     * @param cache1        一级缓存
     * @param cache2        二级缓存
     * @param bufferSeconds 缓冲秒数
     */
    public SecondCacheService(CacheService cache1, CacheService cache2, int bufferSeconds) {
        this.cache1 = cache1;
        this.cache2 = cache2;
        this.bufferSeconds = bufferSeconds;
    }

    @Override
    public void store(String key, Object obj, int seconds) {
        cache1.store(key, obj, seconds);
        cache2.store(key, obj, seconds);
    }

    @Override
    public <T> T get(String key, Class<T> clz) {<FILL_FUNCTION_BODY>}

    @Override
    public void remove(String key) {
        cache2.remove(key);
        cache1.remove(key);
    }
}

        T temp = cache1.get(key, clz);
        if (temp == null) {
            temp = cache2.get(key, clz);
            if (bufferSeconds > 0 && temp != null) {
                cache1.store(key, temp, bufferSeconds);
            }
        }
        return temp;
    
<no_super_class>