put

open fun put(key: String, value: Short): ResourcesHolder
open fun put(key: String, value: Byte): ResourcesHolder
open fun put(key: String, value: Char): ResourcesHolder
open fun put(key: String, value: Boolean): ResourcesHolder
open fun put(key: String, value: Int): ResourcesHolder
open fun put(key: String, value: Long): ResourcesHolder
open fun put(key: String, value: Float): ResourcesHolder
open fun put(key: String, value: Double): ResourcesHolder
open fun put(key: String, value: String): ResourcesHolder

An additional method to holds an Object, for non-primitive data types. For example Drawable, XmlResourceParser, etc. To retrieve it back to the original object, cast it to its origin class. You also can store an array here. An example of using this method is:

 List<String> strs = new ArrayList<>();
 strs.add("FOO");
 strs.add("BXY");
 Person[] persons = 
{
new Person(), null, new Person()
}
;
 XmlResourceParser parser = getResources().getXml(R.xml.preferences);
 ResourcesHolder holder = new ResourcesHolder()
     .put("arrayInt", new int[]
{
9, 8, 5
}
)
     .put("arrayStringList", strs)
     .put("arrayPerson", persons)
     .put("my_parser", parser);
 // Then, retrieve them back to the original form
 int[] ints = holder.getAsIntArray("arrayInt");
 //noinspection unchecked
 strs = (List<String>) holder.getAsObject("arrayStringList");
 // cast them to the original class
 persons = (Person[]) holder.getAsObject("arrayPerson");
 parser = (XmlResourceParser) holder.getAsObject("my_parser");

open fun put(key: String, object: Any): ResourcesHolder