Универсальный объект класса создает и устанавливает значение для переменных этого универсального класса, объект универсального добавления в arrayList - PullRequest
0 голосов
/ 24 сентября 2019

Мой код Image Я пишу класс, который выдаст массив обобщенных переменных, например: встроенная функция примет имя класса, а выходные данные получат массив массив этого обобщенного класса.Пожалуйста, помогите мне с этим Спасибо.

У меня есть встроенная функция, в которой создание экземпляра универсального класса, и универсальный класс arrayList, я пытаюсь добавить этот объект универсального класса в arrayList и его работу, но яЯ не могу установить значения для этих переменных общего класса, создать экземпляр этого класса и добавить в arrayList.

"Пожалуйста, проверьте код в изображении, в блоке кода из-за исправления синтаксиса изменена какая-то строка."

// Встроенная функция

inline fun modelClass (Val: (va: ArrayList) -> Unit) {

       // instance of generic class
        var obj = T::class.java.newInstance()

       // how to set values to the variable of "obj" ?

        // generic arrayList 
        var list = ArrayList<T>()

        // adding object to the list
        list.add(obj)
        list.add(obj)

        Val(list)
}

// ========================================================================

// вызов метода

modelClass<testClass> {
        // printing the values of list
        it.forEach { it ->
            Log.d("ModelClass", "ModelClass - " + it.firstName)
        }
    }

// ========================================================================

// класс модели для справки

класс testClass {

var firstName : String = "hi"
    get() = field
    set(value) {
        field = value
    }

}

как добавить значения переменной в объект, как показано в коде

"Только получение значения переменной по умолчанию"

Вывод: -

ModelClass - привет

1 Ответ

0 голосов
/ 28 сентября 2019

я нашел решение,

inline fun modelClass (Val: (va: ArrayList) -> Unit) {

   // generic arrayList 
   var list = ArrayList<T>()

   var jacksonObjectMapper = jacksonObjectMapper()

   var map = WeakHashMap<String, String>()
   map["key"] = "value"

   var obj = jacksonObjectMapper.convertValue(map, T::class.java)

    // adding object to the list
    list.add(obj)

    Val(list)

}

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...