Как я могу получить содержимое ресурса из статического контекста?

Можно или использовать итератор непосредственно как Вы упомянутый, или иначе сохранить второй набор и добавить каждый объект, который Вы хотите удалить к новому набору, тогда removeAll в конце. Это позволяет Вам продолжать использовать безопасность типов цикла foreach за счет увеличенного использования памяти, и процессорное время (не должна быть огромная проблема, если Вы не имеете действительно, действительно большие списки или действительно старый компьютер)

public static void main(String[] args)
{
    Collection<Integer> l = new ArrayList<Integer>();
    Collection<Integer> itemsToRemove = new ArrayList<Integer>();
    for (int i=0; i < 10; ++i) {
    l.add(new Integer(4));
    l.add(new Integer(5));
    l.add(new Integer(6));
    }
    for (Integer i : l)
    {
        if (i.intValue() == 5)
            itemsToRemove.add(i);
    }

    l.removeAll(itemsToRemove);
    System.out.println(l);
}
160
задан Gangnus 23 March 2016 в 08:48
поделиться

1 ответ

Мое решение Kotlin состоит в том, чтобы использовать статический контекст Приложения:

class App : Application() {
    companion object {
        lateinit var instance: App private set
    }

    override fun onCreate() {
        super.onCreate()
        instance = this
    }
}

И Строковый класс, который я использую везде:

object Strings {
    fun get(@StringRes stringRes: Int, vararg formatArgs: Any = emptyArray()): String {
        return App.instance.getString(stringRes, *formatArgs)
    }
}

, Таким образом, у Вас может быть очевидный способ получения строк ресурса

Strings.get(R.string.some_string)
Strings.get(R.string.some_string_with_arguments, "Some argument")

, не удаляйте этот ответ, позволяйте мне сохранить тот.

0
ответ дан 23 November 2019 в 21:29
поделиться
Другие вопросы по тегам:

Похожие вопросы: