построить собственный кеш, в Kotlin - PullRequest
1 голос
/ 10 февраля 2020

У меня есть список из четырех элементов: created_at, text, name, screen_name. Первый представляет дату создания, второй текст твита, а последний - имя и псевдоним пользователя. Я хочу хранить эту информацию с продолжительностью жизни, случайной продолжительностью жизни. Для этого я подумал об использовании кеша и реализации этой ссылки https://medium.com/@kezhenxu94 / how-to-build-your-own-cache-in- kotlin -1b0e86005591 .

Мои вопросы:

  • использовать ключ-значение карты и сохранить в значении строку со всей информацией (created_at, text, name, screen_name )?
  • как добавить эту информацию на карту с помощью этого кода?

Пожалуйста, приведите пример примера для хранения этих данных. Или, если есть другой способ сделать то, что я хочу более правильно, скажите мне.

Мой код в данный момент:

class ExpirableCache(private val delegate: Cache, private val flushInterval: Long = TimeUnit.MINUTES.toMillis(1000)) : Cache {
    private val dataTweet: Map<Long, Long>? = null

    private var lastFlushTime = System.nanoTime()

    override val size: Int
        get() = delegate.size

    override fun set(key: Any, value: Any) {
        delegate[key] = value
    }

    override fun remove(key: Any): Any? {
        recycle()
        return delegate.remove(key)
    }

    override fun get(key: Any): Any? {
        recycle()
        return delegate[key]
    }

    override fun add(key: Any, value: Any) {
        dataTweet[0, value]
    }

    override fun clear() = delegate.clear()

    private fun recycle() {
        val shouldRecycle = System.nanoTime() - lastFlushTime >= TimeUnit.MILLISECONDS.toNanos(flushInterval)
        if (!shouldRecycle) return
        delegate.clear()
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...