Я использовал что-то вроде этого, чтобы преобразовать T
в string
& amp; String
вернуться к T
с помощью Gson
. Не все, что вы ищете, но на всякий случай.
Объявление расширения
blockquote>inline fun <reified T : Any> T.json(): String = Gson().toJson(this, T::class.java) inline fun <reified T : Any> String.fromJson(): T = Gson().fromJson(this,T::class.java)
Использование
blockquote>// Passing an object to new Fragment companion object { private const val ARG_SHOP = "arg-shop" @JvmStatic fun newInstance(shop: Shop) = ShopInfoFragment().apply { arguments = Bundle().apply { putString(ARG_SHOP, shop.json()) } } } // Parsing the passed argument private lateinit var shop: Shop override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) arguments?.let { shop = it.getString(ARG_SHOP).fromJson() ?: return } }
Так как это для Вашего собственного персонального проигрывания вокруг, мой вопрос прост: Вы уже знаете Подверсию или Мерзавца?
, Если Вы не знаете, любой - использует SVN. Это - лучшее введение.
Если Вы планируете взять с собой свой проект на карте с интерфейсом USB, используйте Подверсию. Windows XP это действительно, действительно, действительно плохо при кэшировании большого количества маленьких файлов на карте с интерфейсом USB. Мерзавец пишет много маленьких файлов для операций фиксации, и это берет возрасты в Windows.
[РЕДАКТИРОВАНИЕ] проблема с Windows XP и файлами на карте с интерфейсом USB кэшируется (или отсутствие этого). Для предотвращения потери данных XP будет всегда писать файлы synchonously на карте с интерфейсом USB (таким образом, любая запись возвратится только после , FS сообщил, что все блоки были записаны в палку). Добавьте, что к тому, что карты с интерфейсом USB являются медленными при обработке маленьких файлов (у них есть большая служебная инициализация их управления уровнем износа), который приводит к очень низкой производительности для любого вида приложения, которое пишет много маленьких файлов.
[EDIT2] при помещении контроля SVN на карту с интерфейсом USB у Вас также будет много маленьких файлов (особенно в .svn каталогах). Таким образом, решение в этом случае состоит в том, чтобы поместить репозиторий Подверсии ("сервер") на Карте памяти. Репозиторий использует только набор больших файлов (при использовании параметра базы данных вместо базирующегося того файла: svnadmin create --fs-type bdb
). Это избегает "многой небольшой проблемы файлов". Нет никакого способа достигнуть того же самого с текущими версиями Мерзавца.
С SVN необходимо будет настроить сервер, создать репозиторий там, проверить (пустой) репозиторий, добавить файлы и затем фиксировать.
С Мерзавцем, все, в чем Вы нуждаетесь, git init
в корневом каталоге Вашего проекта. Затем можно добавить и фиксировать файлы, как Вы считаете целесообразным.
нет действительно никакой идеи в установке сервера Подверсии, так как Вы - единственный, работающий над источником. Вопреки тому, что думают многие люди, сольные проекты являются идеальной парой для распределенных инструментов управления версиями. Также очень легко вырастить Ваш проект позже.
Можно сделать собственное мнение после чтения этого: http://whygitisbetterthanx.com
Позвольте нам моя поездка - в по Вашему вопросу и спросите:
На ноте стороны: Если это - действительно один человек домашний проект, Вам действительно не нужен никакой инструмент управления исходным кодом. Просто поместите свой проект в папка DropBox , и Вы сделаны (автоматические фиксации, бесконечные изменения, восстановите после удаления). Если Вы действительно не думаете, что испытываете необходимость в тегах и ответвлениях и материале. Но поскольку персональные домашние проекты... делают ya?
Какой, который Вы решаете использовать, во многом зависит от того, что Ваши потребности теперь и продвижение. У мерзавца есть очень хорошее сообщество, создал раунд это с GitHub, который является большим для совместного использования кода и проектов. SVN довольно прост установить и начаться, но в многочисленных командах у Мерзавца есть побежденный без всяких усилий с, он переходит и объединяется. Это идеально в случаях, где у Вас есть несколько человек, работающих над тем же проектом, или в офисной установке или в смысле OSS, где команда распространена.
, Если все Вам нужно, что-то быстрое и простое для установки, и начаться так можно запустить проект, SVN должен быть прекрасным. SVN также интегрируется во многих редакторов и IDE, а также многие отслеживание ошибок и непрерывные системы интеграции.
, Если Вы планируете наличие команды или уже делаете, на Мерзавца стоит посмотреть для ее ветвления и слияния установки. У мерзавца однако, в основном благодаря тому, чтобы все еще быть довольно молодым, нет почти такой же поддержки доступной
Я пошел бы с Подвижный вместо этого. Это, как предполагается, подобно Мерзавцу (который я никогда не мог получать выполнение из-за проблемы Windows), и действительно легко установить в Windows & очень хороший для "персональных" систем управления версиями.
Мерзавец является распределенной установкой управления исходным кодом и поскольку Вы - единственный пользователь, я не могу предположить, что Вы извлекли бы выгоду очень из ее функций. Подверсию (по-моему), легче настроить так, я рекомендовал бы пойти с нею.
Если Вы работаете одни и хотите некоторое простое в использовании управление версиями, то используйте Подверсию. Это работает отлично в Windows, открытие репозитория является одним щелчком правой кнопкой в пустом с черепаха SVN . анк SVN предоставляет очень хорошей интеграции с Visual Studio - почти наравне с TFS, если Вы используете VS 2005 или более свежий.
, С другой стороны, Мерзавец является намного более многообещающим, чем SVN. Я проверю его в течение этого года, но сторонние инструменты еще не на одном уровне.
Подверсия намного более благоприятна для Windows, по моему опыту, и также более сразу полезна для сольного разработчика.
Другая возможность По необходимости, который немного менее благоприятен для Windows, но полнофункционален и довольно прост в использовании, не говоря уже о свободном максимум для двух пользователей.
Я пошел бы с Мерзавцем. Дело не в этом плохо набирающий скорость на основах (существует теперь тонна хороших ресурсов, включая learn.github.com), и она окупится чрезвычайно. И я использовал его на Vista без probs.
Если Вы хотите интеграцию Visual Studio нет никакого вопроса. Только Подверсия имеет интеграцию Visual Studio ( AnkhSVN, VisualSVN и несколько сценариев, которые предоставляют доступ к TortoiseSVN).
Одна из самых важных причин, что Подверсия имеет такую большую сумму инструментов, записанных для него, - то, что она была разработана как стабильная библиотека для использования несколькими клиентами.
маловероятно, что Мерзавец получает тот же уровень интеграции в Visual Studio, прежде чем поддержка мерзавца будет доступна как некоторая допускающая повторное использование библиотека. (Существуют планы относительно libgit2, который мог сделать это реальностью).